セルのデータを取得する
前回はセルに文字や数値を入力する方法をご紹介しました
今回は逆にセルに入力されているデータを取得する方法を解説します
こちらのサンプルを使います。必要に応じてダウンロードしてください

練習用エクセルデータをダウンロードする
※練習用エクセルデータをダウンロードした際以下のようなメッセージが出た場合は

編集を有効にするをクリックしてください
また、以下のようにセキュリティーの警告が表示された場合は

コンテンツの有効化をクリックしてください
以下の画像を見てください。行番号3、列番号5にヨーグルトという文字が入力されています
このデータ(文字)を取得してみましょう

VBEを開いて以下の通りに入力してください。VBEの開き方を忘れてしまった方はVBAはどこに書く?を参照してください
Sub syutoku()
Dim mozi
mozi = Worksheets(1).Cells(3, 5)
End Sub

実行してみましょう

なにも起こらないはずです
なぜなら上記のプログラムは
1行目Sub syutoku()はsyutokuという名前の処理のまとまりを作るよ。という命令です
2行目Dim moziはmoziという名前の入れ物を作って。という命令です。
3行目mozi = Worksheets(1).Cells(3, 5)はワークシート番号1番の行番号3、列番号5のセルに入力されている
内容(ここではヨーグルトという文字)を2行目で作ったmoziという入れ物の中に入れなさい。という命令です
4行目はsyutokuという処理のまとまりの終わりだよ。という命令です
つまりmoziという入れ物にデータを格納しただけで表示しろとまでは命令していません
なので、画面表示上はなんの変化も起こりません
それでは確かにmoziという入れ物の中にヨーグルトという文字が格納されているのか確認してみましょう
VBEのEnd Subの左隣のスペースをクリックします

クリックするとEnd Subの隣に茶色の丸が表示されるはずです

点滅しているテキストカーソル(|)をEnd Subの下側に置いた状態で
画面上部の緑色の実行ボタンをクリックします

マクロの一覧が表示されたらsyutokuが選択されていることを確認して実行をクリック

End subの背景が黄色で塗りつぶされていれば処理が完了しています。この状態をデバックモードといいます

この状態で表示→ローカルウインドウの順にクリックすると

以下のようにローカルウインドウが現れます。緑の枠の中を見てみましょう
式の所にmozi、値の所にヨーグルトと表示されています
これはmoziという入れ物の中にヨーグルトという文字が入っているよということを表しています

※変数とは
上記の例ではmoziという名前の入れ物を作ってその中にヨーグルトという文字を格納しました
このmoziを変数といいます。名前は任意につけられます。データを入れておくための箱と思ってもらってよいでしょう

それでは最後にこのmozi(変数)に入ったヨーグルトという文字(値)を行番号1、列番号1のセルに
表示してみましょう
「Worksheets(1).Cells(1, 1) = mozi」をEnd subの上に追加します
ワークシート番号1番の行番号1、列番号1に変数moziの中身を表示しなさいという命令です

以下のように左上にヨーグルトと表示されれば成功です

このように実際にプログラムを作成する際には変数に文字や値を格納して使用する事が多いです
今回は文字を格納しましたが今後、数値を格納して応用する方法も解説します
※デバックモードを抜ける方法
上記の状態はデバックモードと言われる変数の中身をリアルタイムに監視するモードになっています
通常の状態に戻すには
画面上部のリセットボタン→End Subの左隣の茶色い丸をクリックしてデバックモードを抜けてください

補足:上記ではDim moziのように変数の宣言をしておりますが
正式にはDim mozi as Stringのようにデータの型(今回は文字列)を指定します
今回は説明をより簡潔にするため省略した記述を使用しました(プログラムは正常に動作します)
前の記事へ ホームへ戻る 次の記事へ