<meta property=”og:title” content=”アニメ” />

ペントスのほぼ日ブログ

劇場アニメとWordpressの話をアップしています

劇場アニメ
コラム
劇場アニメ
観て来た
劇場アニメ
公開前
劇場アニメ
公開中
イベント お知らせ
ゴジラ Webサンデー
コナン
コナン コードギアス 新妹魔王 曇天に笑う
Fate 僕のヒーロー
アカデミア
マクロス 妖怪ウォッチ デジタルイラスト タグ

エクセル奮闘記-12 --- VBAの基礎まとめ-01

お元気でしょうか?

 

エクセルの記事も継続してブログに掲載することにしました。

 

わかりやすい記事にしたいのですが、今の僕のレベルではわかりやすく説明できてないと思います。

 

僕自身も勉強中ですし、ブログページのレイアウトが思ったより見にくいです。なので、マクロを勉強中の方、興味のある方、軽く参考程度でお願いします。慣れたら、何か工夫して見やすくしたいと思っています。

 

追記

劇場アニメのスケジュールは明日以降にアップします

--------------------------------------------------------------------

VBA基礎のまとめ直し

 
VBA:企業内のXML webサービス、業務システム開発プログラミング言語として利用される


Windowsの設定を変更、インターネットに接続して、データを自動収集する事も可能

イベント駆動型の言語
ボタンが操作されるまでは実行されない

マクロを悪用すると、コンピュータに重大な被害を及ぼす悪質なウイルスを作成することも可能
→マクロの実行でWindowsの設定を変更することができるから


マクロの名前に使いない文字
・「?」、「*」、「-」、などの記号        例外)「 _ 」(アンダーバー)は使える
・名前の先頭の数字も不可        例外)先頭でなければ数字は使える

 

XLSTARTフォルダー
「XLSTART」フォルダー内のブックにマクロが含まれている場合、それらのマクロはセキュリティレベルに関係なく実行できる

ーーーーーーーーーーーーーーーーーーーー
繰り返しの定型文

iが1~5まで変化する時の定型文

Sub Macro1()
    Dim i As Long
    For i = 1 To 5
 
    Next i

End Sub

ーーーーーーーーーーーーーーーーーーーー

Sub Macro1()

    Dim i As Long
    For i = 1 To 5
        If セル > 500 Then
            セルの文字を太字にする
        End If
    Next i

End Sub

ーーーーーーーーーーーーーーーーーーーー
Sub Macro1()

    Dim i As Long
    For i = 1 To 5
        If Cells(i, 1).Value > 500 Then
            'セルの文字を太字にする
        End If
    Next i
End Sub

ーーーーーーーーーーーーーーーーーーーー

わからないオブジェクトやプロパティをマクロ記録して、記録されたコードをヘルプで調べるとみんな言うが、、、、

ヘルプを見てもわからない意味がわからないことの方が多いが、一応、閲覧する習慣をつける

 


モジュールとプロシージャー
モジュールとは何か?

・モジュール=マクロのコードを記述する場所


オブジェクト=EXCELを構成する部品、VBAの操作対象(=動かされる側)

例)range, worksheet, EXCEL本体

・モジュールを収納できるオブジェクト
1)Workbook,
2)Sheet,
3)UserForm


オブジェクトに属さないモジュール
標準モジュール  :    一般的にマクロは標準モジュールに記載する
クラスモジュール  :  クラスを定義するときに扱うモジュール
※クラス=特定の機能をまとめた標準モジュール

マクロの記述
・マクロはどのモジュールに記述してもかまわないが、基本的なルールがある
=標準モジュールに記載しない方が良い場合の注意点

①イベントを利用するマクロはオブジェクトモジュールに記述する
ワークシートをアクティブにするとアクティブシートに対して、イベントが発生するマクロを作ることが出来る = アクティブにするシートのモジュールにマクロを記載する

例)ワークシートを開いた時には必ずカーソルをA1に移動するマクロ

所定のワークシートに記載した方がいい


②上位オブジェクトを省略したときに意味が異なる場合がある
Range(”A1”).Value=100
・標準モジュールの場合                    =アクティブシートの「A1」
・WorkSheetオブジェクトのモジュールに記載した場合    = 記載したWorkSheet

③宣言出来る変数などに制限がある
すべてのモジュールで使用するときは
広域変数(グローバル変数)の宣言をする
Public 変数名 As 変数の型


プロシージャー
プロシージャー=マクロの最小実行単位


プロシージャーの種類
Subプロシージャー        値(結果)を返さないプロシージャー
Functionプロシージャー    値(結果)を返す、実行した結果が変数として利用できる
Propertyプロシージャー        保留

Subプロシージャーを2回繰り返すことも出来る

 


引数=計算のもととなる数値や文字

Functionプロシージャーの例

ーーーーーーーーーーーーーーーーーーーー

Sub 消費税金額()
    MsgBox 税込金額(ActiveCell.Value)
End Sub
Function 税込金額(数値 As Long)
    税込金額 = 数値 * 1.08
End Function

ーーーーーーーーーーーーーーーーーーーー

 


プロシージャーの終わりのルール、書式
Subプロシージャーの場合


Sub 名前()
End Sub

 

 

Functionプロシージャーの場合


Function プロシージャ名(引数 As データ型) As 戻り値のデータ型
    プロシージャ名 = 戻り値
End Function

 

 


別のプロシージャーを実行する
別のプロシージャーを実行するにはCallステートメントに続けて、実行したい、Subプロシージャー名を指定する ※Subプロシージャーを2回使える
ーーーーーーーーーーーーーーーーーーーー


Sub 時間MSG()
    Call P33_時間
    MsgBox ActiveCell
End Sub

 

ーーーーーーーーーーーーーーーーーーーー


Sub 時間()
    ActiveCell.Value = Now()

 End Sub

f:id:pen-toss:20150323214553j:plain 

 

このあたりの理論とか座学はあまり必要ないかもしれません。

僕はほとんど丸暗記でやってきたので、あらためてまとめ直しているところです。

仕事でしぶしぶ勉強している人で、見て下さっている方、お互い、頑張りましょうね。

 

 

 

f:id:pen-toss:20170205223141j:plain