トップページ > windows > microsoft office > EXCEL > VBA > WEB連携以外のつまづきやすいとこ


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

最終更新日時 2011-03-10
■目次


初心者本を読み終わったあとには、msdn(マイクロソフト公式サイト)のこの特集を全部読むのが一番いいかも。
Microsoft Office 2000/Visual Basic プログラマーズ ガイド
「Office 2000」時代のページなので古いし、プログラマー向けの言い回しが多く理解しにくい。
でも、一番体系立てて書かれている気がする。



以下は、自分でまとめてみたわかりにくいプロパティ、メソッド、演算子などの説明。

命令別の分類

VBAの命令(コマンド)は大きく4つに分類できます。
1. プロパティ
2. メソッド
3. ステートメント
4. 関数
引用元: Office TANAKA - Excel VBAステートメント

コメント:ステートメント一覧が上記にある。

2.メソッド


3.ステートメント

3-0.ステートメントとは

ステートメントと呼ばれるのは、function,sub,for,exit,endなど。
ステートメントの定義をmsdnの中で探しまわりましたが見つからず。

msdnを調べる中で、わかったこととしては、
すべてのステートメントは 2 つのカテゴリに分類されます。 引用元: Visual Basic におけるステートメント

各ステートメントは、次のカテゴリのいずれかに属します。
宣言ステートメント。宣言ステートメントは、変数、定数、またはプロシージャの名前を指定します。一緒にデータ型を指定することもできます。
実行可能なステートメント。実行可能なステートメントは、アクションを実行します。メソッドまたは関数の呼び出しや、コード ブロックのループや分岐を行うことができます。値や式を変数や定数に代入する代入ステートメントも実行可能なステートメントに含まれます。
引用元: ステートメントの概要

3-1.宣言ステートメント

3-1-1.プロシージャーの種類を決めるステートメント

プロシージャーには、Function、Sub、Event、Propertyの4種類がある。
参考:VBぷろぐらむ工房:文法書4 (リンク切れ)http://www001.upp.so-net.ne.jp/yoshihiro/gram4.htm
■function
Office TANAKA - Excel VBAステートメント Functionステートメント
Functionの戻り値を配列にしたいのですが
functionを使えば、自分で関数をつくれる。ユーザー定義関数と呼ばれる。
勉強用メモ - EXCEL/VBA/WEB連携以外のつまづきやすいとこ/自作関数
■Property Set ,Get,Let
Property Set ステートメント
Property Get ステートメント
Property Letについて - Visual Basic - 教えて!goo

3-2.実行可能なステートメント

■for
(for文の途中で変数iからi+1に強制的に移りたい場合。)
if文でネストするのが一番マシの様子。
goto文でもできるが、構造が見にくくなる。




修飾子

ByVal と ByRef

Newキーワード


演算子

like演算子(正規表現の簡易版)

記事名: 比較演算子
記事名: Like演算子を使った検索
 サイト名:よねさんのWordとExcelの小部屋



目的別分類


テキストファイルを扱う

(Outputとか、 Appendといった文字列の意味がわからなければここ。)
記事名: テキストファイルを操作する
サイト名:office tanaka

印刷関連


フィルタ

オートフィルターが設定されているか判断する

オートフィルタで抽出された各行をマクロで選択



クリップボード

実は、クリップボードと呼ばれるものは複数あります。
知っている限りでは、DataObject,microsoft officeのクリップボード機能、internet exploreを使うものの3つです。

DataObject

DataObjectオブジェクトはMSFormsのメンバです。使用するには、Microsoft Forms 2.0 Object Libraryを参照設定します。または、ブックにUserFormを挿入すると自動的に参照設定されます。   引用元: Office TANAKA - Excel VBA Tips クリップボードを操作する(1)

Office クリップボード

本来は、
Office クリップボードは VBA による操作に対応していません。
ですが、下記のURLからダウンロードすれば、使用可能。
Office クリップボードを操作する方法 | YU-TANG's MS-Access Discovery

Internet Explorerをつかうもの



自作のVBAに組み込みダイアログを表示させる

組み込みダイアログとは、エクセルにもとから入っているポップアップウインドウみたいなやつ)

基礎

「ページ設定」のダイアログ

((xlDialogPageSetup)
「ページ設定」のダイアログの値の設定方法  (注意!マクロつきエクセルファイル。無効推奨。)

[関数の引数]ダイアログボックス


その他

ダブルクオーテーション(")を変数に挿入する

「"」を代入する場合。
例)strA = """"
です。
「ABC"DEF」を代入するときは、
例)strA = "ABC""DEF"

他のブックのマクロを使う

Run "'マクロブックのフルパス'!モジュール名.プロシージャ名"[, 引数1][, 引数2][, …]
以下でも動く。
Run ("'マクロブックのフルパス'!モジュール名.プロシージャ名"[, 引数1][, 引数2][, …] )

ハイパーリンク

他のブックやシートを立ち上げたいときのハイパーリンク。
Hyperlink.Follow メソッド (Microsoft.Office.Interop.Excel)
Selection.Hyperlinks(1).Follow NewWindow:=True
ただ単に上記のように書くと、なぜか小さい画面になってしまった。
最大化して表示するために下記の一文を追加。
ActiveWindow.WindowState = xlMaximized
3.6 ワークブックを最大化、最小化

入力規則

■セル参照なしで、改行のある入力規則を入力したい。
VBAをつかわないとできない。(たぶん。)
Excel質問掲示板(一般操作) 入力規則の改行
全ては時の中に… : 【Excel】VBAで入力規則を設定する





変数やオブジェクトの型


配列


連想配列(Dictionaryオブジェクト)



多次元配列


ユーザー定義型(構造体)

他の言語では、構造体と呼ばれるものだが、VBAでは「ユーザー定義型」と名づけている。
引数の多い関数を書きたい場合に便利。
特に、これまではoptionalを使っていたような引数、つまり存在が確実でない引数をとる関数を書く場合に便利。optionalは使える順番が決まってくるのに対し、ユーザー定義型なら任意の場所を空白にできる。




VBE

# イミディエイトウィンドウの使い方
記事名: 複数行コマンドをイミディエイトウィンドウで実行
  サイト名:インストラクターのネタ帳
#オブジェクトブラウザ
オブジェクトブラウザ





ユーザーフォーム




personalファイル

なぜか保管場所が二つある。
どうやら、一台のパソコンを複数アカウントで使う場合に、各アカウント間のpersonalファイルの共有する、共有しないを変えるためらしい。

保管場所

PERSONAL(大文字)ファイル:おそらくデフォルトではこちらに保存される。他のアカウントをもつユーザーとpersonalファイルを共有しない。
C:\Documents and Settings\{ユーザー名}\Application Data\Microsoft\Excel\XLSTART

pesonal(小文字)ファイル:1台のパソコンに複数アカウントが入っており、かつ複数アカウントでpersonalファイルを共有したいとき。
C:\Program Files\Microsoft Office\OFFICE11\XLSTART
C:\Program Files\Microsoft Office\Office12\XLSTART



外部コントロールを使う(参照設定を使う)

参照設定にチェックを入れると、VBAでできることが増える。

「参照設定」を行う方法

マクロで参照設定を操作する
サイト名:office tanaka


正規表現


USERFORM

ListViewコントロール


TreeViewコントロール


アドイン

格納場所(EXCEL2003の場合)

C:\Documents and Settings\{ユーザー名}\Application Data\Microsoft\AddIns
C:\Program Files\Microsoft Office\OFFICE11\Library

作り方

基礎

ツールバーにボタンを作ってマクロを実行


Windows API を呼び出す





ページフッタ

このページの1階層上のページ

このページの1階層下のページ

このページに含まれるタグ

このページへのアクセス数

今日: -
昨日: -
これまで合計: -