excelやAccessをよく使っている人でも、マクロを使ったことがないという人は多いと思います。今回はコピーアンドペーストだけで誰にでも使えるエクセルマクロの使い方についてお伝えいたします。
マクロとVBAの違い
マクロとはexcelやAccessの処理を自動化させることで、繰り返しつかう計算や処理はマクロを使ったほうが便利です。
VBAとは簡単に言うとマクロを組むためのプログラム言語のことで、なんとなく難しく感じるかもしれませんが使用するのは実は簡単です。
インターネット上には無料で公開されているVBAのサンプルコードが無数に掲載されているので、それをコピー&ペーストすれば、だれにでもマクロは実行できます。
VBエディタの開き方
まずはマクロを作るための編集ツール「VBエディタ」を開く方法をお伝えします。エクセルかアクセスをを立ち上げたら、altキーとファンクションキーのF11キーを同時に押します。
下記はエクセルからVBエディタを開いた画像です。左側の窓(プロジェクトウィンドウ)にある「Sheet1」「ThisWorkbook」のいずれかをダブルクリックすると、中央の大きな空間にコードを記述するウインドウが現れます。
エクセルの 簡単なVBAをコピー&ペースト
エクセルのセルに文字を入力するマクロ
マクロを実行するたびにエクセルの2列1行目から下の行に向かって「○回目のVBA実行」というテキストを入力する簡単なマクロを記述しました。
sheet1にVBAを貼り付け
VBエディタの左上プロジェクトウィンドウでsheet1が選択されていることを確認して下記をVBエディタに貼りつけてください。
このプロシージャを実行することで、エクセルシートに文字を入力します。
Sub input_text()
Dim text_1 As String
Static i As Integer
If i < 1 Then
i = 1
End If
text_1 = i & "回目のVBA実行"
Cells(i, 2) = text_1
i = i + 1
End Sub
ThisWorkbookにVBAを貼り付け
VBエディタの左上プロジェクトウィンドウで「ThisWorkbook」をダブルクリックして、下記のコードを貼り付けてください
このプロシージャはエクセルファイルを開く時に自動実行されるもので、2列目に今回のマクロで入力されたテキストを消去し、初期の何も入力されていたい状態に戻します。
Private Sub Workbook_Open()
Dim i As Integer
i = 1
Do While Len(Sheets(1).Cells(i, 2)) > 0
Sheets(1).Cells(i, 2) = ""
i = i + 1
Loop
End Sub
貼り付けたマクロの実行方法
マクロを実行するにはいくつかの方法がありますが、ここでは、VBエディタから直接実行する方法と、エクセルシートにボタンを設置する方法をお伝えします。
VBエディタから直接マクロを実行
VBエディタ下の部分にあるイミディエイトウインドウに、「設置場所.プロシージャ名」と記述することでマクロが実行されます。今回の場合だと sheet1.input_text と記述しエンターボタンを押します。
イミディエイトウインドウからのマクロの実行は下記に詳しく記述しています。
エクセルシートにボタンを設置してマクロを実行
エクセルシートにボタンを設定するには下記の画像のようにメニュー>開発>挿入からフォームボタンを選びます。
VBAの実行可能なプロシージャ一覧が開くので選択してOKボタンをクリック
あとは好みの位置にボタンを設置すれば完成、ボタンを押すたびにプロシージャが実行されます。。
ご注意点
このマクロを実行すると下の行に向かって、どんどんテキストを入力していきますが、エクセルファイルと一旦閉じて再び開くと、入力されたテキストが消去されて何もない状態にリセットします。
しかし、エクセルを閉じる前にはマクロ有効型のxlsmの拡張子で保存しおかないと、せっかく貼り付けたマクロも消えてしまうので注意しましょう。
まとめ
VBエディタの使い方さえわかれば、インターネット上にある ExcelVBA やAccessVBAのサンプルコードを実行できますし、それを応用すればご自身の仕事に活用できると思います。
このブログでも、お仕事に活用できそうなサンプルコードをどんどん書いていくつもりです。ご質問などございましたらお気軽にメッセージを投稿ください。
この記事があなたのお役にたてれば幸いです。
コメント