Countrylife
パソコン関連  Excel  天文 家電 DIY NOTEPCへ ハードディスク  車&バイク
昔,ロータス1-2-3を日経パソコン(雑誌)の連載で必死に覚えました。
今は,ExcelやVBAの本がたくさんあります。
参考図書   著者  出版社 発行年  定価  内容 
 入門者のExcelVBA  立山秀利 講談社 2012年  968  書いてあるとおりにすれば動くステートメントができる。
たった1日で即戦力になるExcelの教科書   吉田 拳  技術評論社 2014年初版  1,958  新版が出ました。身につけるべきことが絞ってあり分かりやすい。
ExcelVBA本格入門   大村あつし  技術評論社 2015年 3,278  教科書的に網羅してある。改訂版が出ている。
Excel VBA アクションゲームj作成入門   近田伸矢ほか  インプレス 2009年  3,300  少し古いがExcelでゲームがつくれる。CD付き。
パーフェクトExcel VBA  高橋宣成   技術評論社 2019年  3,608  入門書を読んだ後で読むとVBAの理解が深まる。
 Excel関数超事典 萩原祐二   技術評論社 2020年  1,518  Excel2019/365に対応した関数の事典。SWITCH関数も載っている。
 ExcelVBAポケットリファレンス 前田智美   技術評論社 2010年第3版 2,728   少し古いがちょこっと調べるのにいい。
 参考になるWEBサイト    
 moug  Excel VBA を学ぶなら moug モーグ  
 Office TANAKA  Office TANAKA  
 インストラクターのネタ帳  インストラクターのネタ帳 (relief.jp)  
     
マクロ   
 このブックの
インフォマクロ
Sub InfMsg()
'このエクセルブックについて
'画面更新をしないに設定
Application.ScreenUpdating = False

    Dim myMsg As String, myTitle As String

        myMsg = "○○○の○○*********を" & vbCrLf & _
              "***********したブックです。" & vbCrLf & vbCrLf & _
              "***" & vbCrLf & _
              " ******," & vbCrLf & _
              " *************。" & vbCrLf & _
              "-----------------------------------------------------" & vbCrLf & _
"                                 M*****"
        myTitle = "このブックについて"

            MsgBox myMsg, vbOKOnly + vbInformation, myTitle

        '1番目のシートを表示
        Worksheets(1).Select

'画面更新を元に戻す
Application.ScreenUpdating = True
End Sub 
 すべてのシートの
保護を解除する
マクロ
 Private Sub HoKaijo()
    '全てのシートの保護を解除するマクロ:

'画面を更新しないに設定
Application.ScreenUpdating = False

'    For Each 〜 Next 構文で最後シートが1つ前で終了するために設定
    'ボタンがあるワークシート変数を宣言
    Dim acSheet As Worksheet
    'カレントシートを変数に代入
    Set acSheet = ActiveSheet

    Dim wsCou As Worksheet
    'シートの保護を解除する
       For Each wsCou In ThisWorkbook.Sheets
           If wsCou.ProtectContents = True Then wsCou.Unprotect
       Next wsCou

       'カレントワークシートを選択する
       acSheet.Select

    MsgBox "全てのシートを保護を解除しました。"

'画面の更新をデフォルトに戻す
Application.ScreenUpdating = True

End Sub
 ブックのすべての
シートを保護する
マクロ

Private Sub HoGo()
'全てのシートを保護するマクロ

'画面を更新しないに設定
Application.ScreenUpdating = False


    'For Each 〜 Next 構文で最後シートが1つ前で終了するために設定
    'ボタンがあるワークシート変数を宣言
    Dim acSheet As Worksheet
    'カレントシートを変数に代入
    Set acSheet = ActiveSheet

    Dim wsCou As Worksheet
    'シートを保護する
    For Each wsCou In ThisWorkbook.Sheets
        If wsCou.ProtectContents = False Then wsCou.Protect
    Next wsCou

'    カレントワークシートを選択する
    acSheet.Select

    MsgBox "全てのシートを保護しました。"

'画面の更新をデフォルトに戻す
Application.ScreenUpdating = True

End Sub
 エラー番号表示 Sub ErrMsg()
    MsgBox "予期せぬエラーが発生しました。下記の番号をお知らせ下さい。" & vbCrLf & _
         "エラー番号: " & Err.Number _
         & vbCrLf & "エラー内容: " & Err.Description & vbCrLf & _
         "                        ○○", vbExclamation
End Sub
 
 印刷設定画面の
表示
Sub setteiPrn()
    'プリンタを表示,設定するステートメント
    On Error GoTo myErr

    Dim myBtn As Integer 'okキャンセルボタン用
    Dim myMsg As String, myTitle As String 'メッセージとタイトル

    'メッセージを記述
        myMsg = "両面印刷できるプリンタを選択し," & vbCrLf & _
              "設定ボタンで両面印刷するに設定してください。" & vbCrLf & vbCrLf & _
              "OK すると,プリンタの設定画面では," & vbCrLf & _
              "印刷のキャンセルはできません。よろしいか。"
     'タイトルを記述
        myTitle = "プリンターの選択"
     '印刷するかどうか。確認
        myBtn = MsgBox(myMsg, vbOKCancel + vbInformation, myTitle)

If myBtn = vbOK Then
Application.Dialogs(xlDialogPrinterSetup).Show
'もしシートが保護されていたら解除する
If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect
Sheets("シート名○○").PrintOut

MsgBox "印刷が終了しました。印刷機の両面印刷の設定を元に戻してください。"
'シートを保護する
ActiveSheet.Protect
End If
Exit Sub

myErr:
Call ErrMsg
End Sub 
 ワークシート名の
表示
Private Sub ワークシート名表示()

    'ワークシートの名前を表示する
    MsgBox "このワークシートの名前は, [ " & ActiveSheet.Name & " ] です。"

End Sub 
 リボンを
非表示にする
(これは
Ctr l+ F1 で
トグルになる)
Sub リボン非表示()
    If Application.CommandBars("Ribbon").Visible = True Then
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Else
        MsgBox "リボンは非表示です。"
    End If
End Sub 
 リボンを
表示する
(これは
Ctr l+ F1 で
トグルになる)
Sub リボン表示()
    If Application.CommandBars("Ribbon").Visible = False Then
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
    Else
        MsgBox "リボンは表示されています。"
    End If
End Sub
 
 ブックの保存  Sub ブック保存()
    On Error Resume Next
    ActiveWorkbook.Save
    MsgBox ActiveWorkbook.Name & " を保存しました。"
    If Err.Number > 0 Then MsgBox "保存されませんでした。"
End Sub