TopProgramming LanguageVB/VBA > 2013年11月
2013年11月29日

Excel VBAでマクロ実行ボタンを作る

November 29,2013 1:55 AM
Tag:[, ]
Permalink

Excel VBAでマクロ実行ボタンを作る方法を紹介します。

このエントリーではExcelシート上にボタンを表示させ、ボタンをクリックすると「Hello World!!」というダイアログを表示させるところまでを説明します。

ダイアログ

説明の画面はExcel 2010を使っています。

1.開発メニューの表示

マクロ実行ボタンを画面に表示するには、、まず「開発」メニューを表示させる必要があります。

「開発」メニューを表示方法は以下の記事を参照してください。

Excelで「開発」メニューを表示する方法

2.マクロ実行ボタンの挿入

「開発」メニューの「挿入」をクリックし、表示されたアイコンから左上の「ボックス」をクリック。

(クリックで拡大)
挿入

クリックした状態でアイコンをセルの方に移動するとポインタが「+」マークに変わります。

「+」マークに変わった状態でセルをクリックすると、「マクロの登録」というウィンドウが表示されます。

マクロの登録

右側にある「新規作成」をクリック。

新規作成

「Visual Basicエディタ(VBE)」が起動して「Sub~End Sub」と表示され、その間でカーソルが点滅します。これは、これから挿入するボタンがクリックされたときに動作するプログラムになります。

Visual Basicエディタ

カーソル点滅している部分に「MsgBox "Hello World!!"」と入力してVisual Basicエディタ画面の右上の×印をクリックして閉じます。

Hello World!!

Visual Basicエディタを閉じると、シート上にボタンが現れます。これがマクロ起動ボタンです。

マクロ起動ボタン

3.マクロ実行ボタンの実行

ボタンが編集できる状態になっているので、セルの任意の位置をクリックして、ボタンの選択を一旦解除します。

ボタンの選択を解除

これでボタンをクリックすると、さきほど入力した「Hello World!!」というダイアログが表示されます。

Hello World!!

お分かりと思いますが、「MsgBox "文字列"」とかけばこのようにダイアログを表示してくれます。

Comments [0] | Trackbacks [0]
2013年11月20日

VBAで「アプリケーション定義またはオブジェクト定義のエラーです。」の対処

November 20,2013 1:55 AM
Tag:[, ]
Permalink

VBAで「アプリケーション定義またはオブジェクト定義のエラーです。」の対処方法について紹介します。

このエントリーはVBAビギナーの方向けの内容です。

1.問題点

次のような簡単なVBAのコードを記述します。

Option Explicit
 
Sub test()
    Dim i As Integer
    For i = 0 To 9
        Worksheets("Sheet1").Cells(i, 1).Value = i
    Next i
End Sub

このコードはFor文を10回繰り返して、For文で使っている変数iの値をセルに表示させるという簡素なものです。

が、このコードを実行すると、次の「アプリケーション定義またはオブジェクト定義のエラーです。」というエラーになります。

エラー

表示されたダイアログの「デバッグ」をクリックすると

Worksheets("Sheet1").Cells(i, 1).Value = i

の部分が黄色いマーカーで表示され、この行を実行したときにエラーになっていることが分かります。

(クリックで拡大)
黄色いマーカー

2.原因

このエラーになる原因は、Cells()を使ったときの第1パラメータの変数iに「0」が設定されているためです。

Cells()で指定するセルの指定位置は「Cells(1,1)」からなので、「0」が指定されるとこのエラーが発生します。

つまり、変数iの値が0にならないよう、コードを赤色部分のように修正すれば、エラーが発生せずに正常に動作します。

Option Explicit
 
Sub test()
    Dim i As Integer
    For i = 1 To 10
        Worksheets("Sheet1").Cells(i, 1).Value = i
    Next i
End Sub

実行結果
実行結果

あるいは次のように変更します。

Option Explicit
 
Sub test()
    Dim i As Integer
    For i = 0 To 9
        Worksheets("Sheet1").Cells(i + 1, 1).Value = i
    Next i
End Sub

実行結果
実行結果

本題とは関係ありませんが、上記2つのコードは出力結果が異なるので注意してください。

簡単なサンプルではエラー原因が一目で分かりますが、そもそも「アプリケーション定義またはオブジェクト定義のエラーです。」という意味が不明なので、規模の大きなコードでこのエラーが出たときは何が原因か分かりにくくなりがちです。

基本に戻って思い出すといいでしょう。

Comments [0] | Trackbacks [0]
2013年11月19日

ExcelでVBAの編集画面を開く方法

November 19,2013 1:23 AM
Tag:[, ]
Permalink

ExcelでVBAの編集画面を開く方法を紹介します。

1.はじめに

仕事で急遽VBAを書かないといけなくなったのですが、そもそもExce上でVBAをどうやって書き始めればよいのかすら分かりませんでした。

調べたところ、ExcelでVBAを編集するには「Visual Basicエディタ(VBE)」を立ち上げるようです。

Visual Basicエディタ(クリックで拡大)
Visual Basicエディタ

Visual BasicエディタはVBAの統合開発環境で、プログラムを編集するためのエディタ機能や、ソースコードのコンパイルや実行、デバグなどが行えます。

ということで、ここではExcel2010の画面からVisual Basicエディタを開く方法を説明します。

2.ショートカットで起動・終了する

Excelの画面上でAlt+F11キーを押下すれば、冒頭に示したVisual Basicエディタが起動します。

ちなみに、開いたVisual Basicエディタで編集する内容は、Visual Basicエディタ起動時にアクティブになっているブックにひもづきます。

3.メニューから起動する

メニューから起動できるようにする場合、まず「開発」メニュー表示させる必要があります。

「開発」メニューを表示させるには次の記事を参照してください。

Excelで「開発」メニューを表示する方法

「開発」タブをクリックすると左端に「Visual Basic」が表示されるので、これをクリックすれば2項と同様、Visual Basicエディタが起動します。

(クリックで拡大)
Visual Basic

4.Visual Basicエディタの終了

Visual Basicエディタは以下の以下のいずれかの手順で終了できます。

  • Visual Basicエディタの「ファイル」メニューから「終了してMicrosoft Excelへ戻る」を選択
  • Alt+F11キーを押下
  • Visual Basicエディタ画面の右上にある×印をクリック
Comments [0] | Trackbacks [0]
2013年11月14日

VB/VBAの「Dim」の意味

November 14,2013 1:33 AM
Tag:[, , ]
Permalink

VBやVBAで変数宣言するときの「Dim」の意味について調べてみました。

仕事でExcel VBA(Visual Basic for Applications)を使う機会があったので、当ブログでもいくつかまとめることにします。

1.変数の宣言

VBA変数の宣言には「Dim」を利用します。変数名と同時に型も宣言します。

Dim 変数名 As データ型

2.「Dim」の意味

本題ですが、Dimは「Dimension」の略のようです。

Dimensionは「次元」という意味があります。また「寸法、容積」といった意味もあります。

3.変数の宣言で「Dim」を使う理由

以前のMicrosoft BASICという言語では、そもそも変数を宣言する必要はありませんでした。

ただし、配列を使いたいときは変数宣言が必要でした。理由は、サイズを明示的に指定してメモリ領域を確保する必要があったためと思われます。

2項に記したとおり、Dimensionは「次元」を意味することから、配列変数の宣言の「Dim」には「1次元配列の宣言」「2次元配列の宣言」という意味があったと思われます。

ということで、Dimを使った変数宣言は配列変数だけが対象でしたが、VBやVBAでは配列変数だけでなく、他の変数も含め、変数全体を宣言する命令に変わったようです。

4.参考サイト

参考サイトは以下です。ありがとうございました。

Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3