ExcelVBAへの道
|
Subプロシージャ 実行結果を返さない。 単独で実行するプログラム。 マクロ記録で作成されてたプログラム。 ------------------------------------- Functionプロシージャ 実行結果を返す。 ユーザー定義に使う。 ------------------------------------- 3つのモジュール 1、標準モジュール 汎用的なコードを書くとき。 2、フォームモジュール フォームダイアログボックスのイベントを書く。 3、クラスモジュール 特定のオブジェクトに対してコードを書くとき。 cls.frm.basの拡張子が付いている。 ---------------------------------------- ステートメントとは プロシージャ内にある1行のコードのこと。 ---------------------------------------- オブジェクトとは エクセルの構成部品のこと。 ---------------------------------------- MyData = Range("A1").Value ↑ ↑ ↑ 変数 オブジェクト プロパティ ---------------------------------------- Range("A1").Value = "ABC" 右辺から左辺へ値の代入 ---------------------------------------- 一度エクセルを終了すると、マクロコードを保存するModul1,Modul2とどんどんモジュールが 増えていくのでプロシージャを移動してまとめましょう。 --------------------------------------- With オブジェクト名 .プロパティ = "設定内容" .プロパティ = "設定内容" .プロパティ = "設定内容" End With でグループ化して省略できる。 ----------------------------------------- hensu = InputBox("メッセージ") でインプットボックスからデータを取り込める。 ----------------------------------------- 特徴的なお助け機能 1、自動クイックヒント 2、自動メンバ表示 ----------------------------------------- 編集ツールバーのコメントブロックボタンで簡単にエラー部分のコードをコメントに できるので、検証するときには是非使いましょう。 ------------------------------------------ 宣言セクションに書かれた変数は同じモジュール内ならどこでも使える。 ------------------------------------------ Offsetの使用例 ActiveCell.Offset(0,1).Select Range("A1").Offset(2,5).Select Range("A1:B5").Offset(5,-3).Select ----------------------------------------- ユーザー定義関数設定例 Function 税込売上金額(単価, 数量) 税込売上金額 = 単価 * 数量 * 1.05 End Function Function kasan(i As Integere,j As Integere) As Integer kasan = i + j End Function ----------------------------------------- VBAコードに保護をかけるとコードを見えなくできる。 VBAEditor>ツール>VBAProjectのプロパティ>保護タブ>プロジェクトを表示用にロックする をチェックしてパスワードを入力する。 ------------------------------------------- ブックウィンドウサイズについて Sub MaxSize() Dim UHeight As Double Dim UWidth As Double UHeight = Application.UsableHeight UWidth = Application.UsebleWidth With ActiveWindow .WindowState = xlNormal .Top = 0 .Left = 0 .Height = UHeight .Width = UWidth End With End Sub -------------------------------------------------- ブックウィンドウを並べて表示する。 Sub WindowArrange() Windows.Arrange ArrangeStyle:=xlArrangeStyleTiled '並べて表示 =xlArrangeStyleCascade '重ねて表示 =xlArrangeStyleHorizontal '上下に並べて表示 =xlArrangeStyleStyleVertical '左右に並べて表示 --------------------------------------------------- シートを追加 Sub newsheet() Sheets.Add End Sub ----------------------------------------------------- Sub newsheet() Sheets.Add.Name = "名前" '名前を付けて追加する End Sub ------------------------------------------------------- Sub newsheet() Sheets.Add after:=Worksheets(1),cont:=2 'ワークシートを2枚追加 End Sub -------------------------------------------------------- Sub シートを選択() Worksheets("Sheet1").Activate End Sub --------------------------------------------- シートを移動する Sub シート移動() Sheets("Sheet1").Move After:=Sheets(2) End Sub ---------------------------------------------- ワークシートを非表示にする Sub hihyouji() Worksheets("Sheet1").Visible = False End Sub ----------------------------------------------- シート1をシート4の後ろにコピーする Sub copy() Sheets("Sheet1").Copy After:=Sheets("Sheet4") End Sub -----------------------------------------------^ 別のブックにシートをコピーする。 Sub bookcopy() ActiveSheet.Copy Before:=Workbooks("コピー先ブック名”).Sheets(3) End Sub ------------------------------------------------ シートを削除する Sub シート削除() Worksheets("Sheet4").Activate ActiveSheet.Delete End Sub -------------------------------------------------- Sub 線を引く() Range("A1:D1").Select Selection.Borders(xlBottom).LineStyle = xlContinuous '直線 Selection.Borders(xlBottom).LineStyle = xlDash '破線 Selection.Borders(xlBottom).LineStyle = xlDshuDot '一点破線 Selection.Borders(xlBottom).LineStyle = xlDshuDotDot '二点破線 Selection.Borders(xlBottom).LineStyle = xlDot 'ドット線 Selection.Borders(xlBottom).LineStyle = xlDouble '二重線 Selection.Borders(xlBottom).LineStyle = xlLineStyleNone '線なし End Sub --------------------------------------------------------- Sub 細実線で囲む() Range("A1:D5").Borders.LineStyle = xlContinuous End Sub |