【Excelマクロ(VBa)】セル入力


   セルの入力


セルに文字を入力するには、下記のように記述します。

Dim AppExcel As Excel.Application
Set AppExcel = New Excel.Application

AppExcel.Workbooks.Add 'ブックを新規追加
AppExcel.Visible = True '表示

'10 * 10 のセルに i * j の結果を記入
For i = 1 To 10
  For j = 1 To 10
    AppExcel.Cells(i, j) = i * j
  Next j
Next i

'セルを全選択
AppExcel.Cells.Select
'セルの幅を自動調整
AppExcel.Cells.EntireColumn.AutoFit
'セルA1を選択
AppExcel.Range("A1").Select


 セルの入力(レスポンス向上)


基本は上記のように記載しますが、データのI/Oはレスポンスに非常に負荷が掛かります。負荷を軽減するには、I/Oの処理を極力抑える事が望ましいです。

そこで、i * j の処理結果を 変数(配列)にセットし、纏めてセルへ入力します。(※ 赤字箇所が変更内容です)

Dim AppExcel As Excel.Application
Dim ExcelData() As Variant

Set AppExcel = New Excel.Application

AppExcel.Workbooks.Add 'ブックを新規追加
AppExcel.Visible = True '表示

ReDim ExcelData(10, 10)

'10 * 10 のセルに i * j の結果を記入
For i = 1 To 10
  For j = 1 To 10
    'セルは開始位置(1, 1)に対し、変数は(0, 0)のため注意
    ExcelData(i - 1, j - 1) = i * j

  Next j
Next i

AppExcel.Range(AppExcel.Cells(1, 1), AppExcel.Cells(10, 10)) = ExcelData

'セルを全選択
AppExcel.Cells.Select
'セルの幅を自動調整
AppExcel.Cells.EntireColumn.AutoFit
'セルA1を選択
AppExcel.Range("A1").Select

上記例では、分かりやすいように 具体的な数値 (10, 10) で設定しましたが、変数化すると柔軟になります。

ちなみに、レスポンスの比較で、10 * 10 程度では顕著な差は出ませんが、1000 * 100とすると、下記のようにレスポンスの差が歴然とします。

処理方法 秒数
直接入力 48秒
変数[配列]入力 1秒未満

カテゴリー: VBa(Excelマクロ), システム開発 | コメントする

【ポケモンGO】伝説ポケモン「ライコウ」「エンテイ」「スイクン」登場



2017年9月1日、公式サイトにて新たな伝説ポケモン「ライコウ」「エンテイ」「スイクン」実装の発表がありました!

「ルギア」「サンダー」「ファイヤー」「フリーザー」と同じようにレイドボス戦でゲット出来ます。早速6戦スイクンとバトルしてきました!

今までの伝説ポケモンは飛行系だったので、狙いが定まりにくかったのに対し、スイクンは非常にボールを当てやすいです。ですが・・・1体しかゲット出来ませんでした(T_T)

現在明確になっている出現期間と出現場所は下記の通りで、1ヶ月毎にローテーションするようです。

期間 伝説ポケモン 場所
2017年9月1日~30日 「スイクン」 アジア太平洋地域
「ライコウ」 アメリカ大陸
「エンテイ」 ヨーロッパ・アフリカ大陸
また、近々、「EXレイド」も実装されるようで、試験的に招待状の配信が始まるようです。クジ運悪いからなぁ・・・(-_-;)

カテゴリー: ポケモンGO | コメントする

【新聞記事】痴漢疑い、逃げるは×



2017年7月14日の新聞記事より。

通勤中のサラリーマンにとって痴漢に間違えられる事ほど災難は無いと思います。

「もし自分が痴漢に間違えられたら?」

「自分が間違えられる事は無いだろう」「もし間違えられても説明すれば・・・」という意見を持っている方が大半ですが、ネットで検索すると「捕まったら最後」「疑われたら逃げろ」と書かれているサイトもあります。

その影響か、線路に飛び降り、逃げるケースが相次いでます。

冷静に考えれば、疑われて逃げ出せば「怪しい」と思うのが普通の心理ですが、2007年1月20日に公開された日本映画「それでもボクはやってない」を見ると、「捕まったら最後」「疑われたら逃げろ」と言われるのも仕方ない面がありそうです。

管理人は、帰宅時は難しいですが、出勤時は同じ時間の同じ車輌に乗り、片手にカバン、反対の手にスマホを持って通勤しています。

カテゴリー: 事件, 新聞記事 | コメントする

【新聞記事】消える海水浴場 平均年12ヵ所



2017年7月13日の新聞記事より。

去年、同じような記事「消える海水浴場 平均年10ヵ所」をご紹介しましたが、今年は年平均12カ所という事で減少ペースが上がっている?!

今年の7月頃は真夏日が多かったのに対して、8月のお盆時期は雨・気温が低く海水浴には適さない日が多かったです。

海水浴だと事前準備として、旅館の手配・現地までの足が必要で、更に天候不順によるスケジュール変更に融通が利かない、他のレジャーへの代替が難しい・・・などを考えると、海水浴に行くのは一大イベントで失敗すると非常に痛い!

近場や遊園地のプールは、当日の天気と相談しながら行けるし、プールだけではなく、他のレジャーも楽しめるので、ますます海水浴客減少となってしまいます。

費用も、海水浴だと交通費・駐車代・宿泊代・シャワー代と色々と掛かりますが、遊園地のプールは交通費は安くで済むし、近くの遊園地であれば、宿泊代・シャワー代は掛からず、代わりに入園料。

海水浴ならではの魅力はありますが、手軽さ、コストパフォーマンスを考えると、海水浴は分が悪そうです。

カテゴリー: 新聞記事, 旅行 | コメントする

【新聞記事】マクドナルド特需「ポケGO」



2017年7月22日の記事より、ポケモンGOが日本上陸してから1年経過し、当時の熱狂的なブームは・・・リリース当時じゃないにしても、月440万人のトレーナーが利用しているというのは驚きです。

そして、都内の公園にいた会社員(48)の驚くべきヘビーさ!

管理人も毎日ポケGOをやってますが・・・2,742㌔です。



それは さて置き、ポケモンGOのイベントがある所に人が集まりますが、目玉となる企画が無いと常時集客は難しいです。そういう意味では、伝説ポケモンのレイドボス戦は非常に有効な1手だったのではないでしょうか?

いつPOPするとも分からないレイドボス。伝説を倒すには人が必要となると、人が集まる駅前や大都市圏で時間を潰すしかないのですが、この真夏日で熱中症にならないためにも、マックで涼みながら待機し、近くにPOPしたら足を運ぶ・・・そんなトレーナーは、自分だけじゃないはず?

カテゴリー: ニュース, ポケモンGO | コメントする