Excel・VBAの道具箱

Macro Code -VBA 競艇ソフト開発者向け

管理人のテンプレート

競艇開催スケジュール

競艇オフィシャルから取得するのがベストですが、まずは、パワークエリを使って当サイトのデータファイルから取得してみてください。

パワークエリを使って開催スケジュールを取得

業務のための道具箱

一般業務用「Xプレート」

ダウンロード前に是非目を通してください。

VBAと解説

Excelで日付を変えて何十枚も印刷

VBAコードを見る(クリックで展開)

このVBAの解説記事はこちら

Public Sub 指定期間の業務日誌を印刷()

    Dim ws As Worksheet
    Dim 開始日 As Date, 終了日 As Date, 印刷日 As Date
    Dim 元の日付 As Variant
    Dim 印刷枚数 As Long, 送信済み As Long
    Dim 日付変更済み As Boolean
    Dim エラー内容 As String

    On Error GoTo 印刷エラー
    Set ws = ThisWorkbook.Worksheets("業務日誌")

    If Not IsDate(ws.Range("AA13").Value) Or _
       Not IsDate(ws.Range("AA14").Value) Then
        MsgBox "AA13に開始日、AA14に終了日を入力してください。", vbExclamation
        Exit Sub
    End If

    開始日 = DateValue(ws.Range("AA13").Value)
    終了日 = DateValue(ws.Range("AA14").Value)

    If 終了日 < 開始日 Then
        MsgBox "終了日は開始日以降にしてください。", vbExclamation
        Exit Sub
    End If

    印刷枚数 = DateDiff("d", 開始日, 終了日) + 1

    If MsgBox(Format(開始日, "yyyy/m/d") & " ~ " & _
              Format(終了日, "yyyy/m/d") & vbCrLf & _
              "合計 " & 印刷枚数 & " 枚を印刷します。" & vbCrLf & vbCrLf & _
              "プリンターの電源・接続を確認しましたか?", _
              vbYesNo + vbQuestion + vbDefaultButton2, "印刷の確認") <> vbYes Then
        Exit Sub
    End If

    元の日付 = ws.Range("AA8").Value2
    日付変更済み = True

    For 印刷日 = 開始日 To 終了日
        ws.Range("AA8").Value = 印刷日
        ws.Calculate
        DoEvents
        ws.PrintOut From:=1, To:=1, Copies:=1, _
                    Collate:=True, IgnorePrintAreas:=False
        送信済み = 送信済み + 1
    Next 印刷日

    ws.Range("AA8").Value2 = 元の日付
    ws.Calculate
    日付変更済み = False

    MsgBox 送信済み & " 枚の印刷指示を送信しました。", vbInformation
    Exit Sub

印刷エラー:
    エラー内容 = Err.Description
    On Error Resume Next
    If 日付変更済み Then
        ws.Range("AA8").Value2 = 元の日付
        ws.Calculate
    End If
    On Error GoTo 0
    MsgBox "印刷処理を中止しました。" & vbCrLf & _
           "送信済みの印刷指示:" & 送信済み & " 枚" & vbCrLf & _
           エラー内容, vbExclamation

End Sub

用語集

身構えるな!必要な用語は自然と身に付く

難しい用語が多いと、それだけで苦手意識が出てしまうかもしれません。
でも、どんな仕事にも専門用語や少し難しい話は必ずあってあなたの仕事もそうに違いありません。
最初から全部を理解しようとしなくても大丈夫です。
大切なのは、「わからないから無理」と止まるのではなく、少しずつ前向きに触れていくことです。

AIやChatGPTを使う場合も、基本的な用語を少し知っているだけで会話がずいぶん楽になります。
質問の仕方が変わり、返ってくる答えの理解もしやすくなります。
つまり用語を知ることは、AIを上手に使うための近道でもあります。

用語は、「言語」です。
最初は聞き慣れない言葉でも、何度も使っているうちに自然と身についていきます。
いちいち止まって完璧に覚える必要はありません。(専門家だってそんなに言葉や用語を正しく説明出来るのかなんて怪しいものです。)
わからない言葉が出てきたら、その都度ChatGPTに聞けばいいのです。
「それ、前にも教えましたよね?」などとChatGPTは言いませんから・・・
それでも身に付かなかった用語があれば、それはあなたにとって「必要なかった」だけのことです。

用語集へ行く

ショートカットキー

ショートカットキーは覚えなくても何とかなる・・しかし

ショートカットキーを使わなければできない作業はありません。(これに例外はない)

では何故覚えるのか?

頻繁に使う作業(コマンド、タスク)だからです。
よって、すべの作業にショートカットキーがあるわけではない。

ここでは、私が自然に身に付いたショートカットキーのみ掲載しますが、もちろん押し付ける気持ちは微塵もありません。
「そう言えば、独多もこのショートカットキー使ってたな」くらいの感じでどうでしょうか?

Ctrl + F

AIとのやり取りで自然に覚えたショートカットキー

Excelで目的の文字や数字を探すとき、便利なのが「Ctrl+F」です。
私自身、ChatGPTとのやり取りを重ねるうちに、自然と身に付いた操作の一つです。
例えば、長いVBAを修正するとき、ChatGPTからこんな指示を受けることがしょっちゅうあります。
「そこでエラーがでるのは***が原因です。VBAコード内の Worksheets("Sheet1") を ActiveSheet にすべて置き換えてください。」
(置き換えはホントはCtrl + H ですが、私は使いません何故か?置き換える前に自身で確認したいからです。しかも置き換えと検索は同じ窓にありますので・・・)
使い方は簡単。「Ctrl」キーを押しながら「F」キーを押すだけ。
すると検索窓が開くので、探したい文字や数字を入力します。
Excelだけでなく、WordやWebブラウザ、メモ帳その他多種のソフトも右倣えですから、何かと便利です。
検索の効能とは長い文章や大量のデータから、目的の場所を圧倒的に素早く見つけられることです。
マウスで延々とスクロールして血眼になって文字や数値を探す必要はありません。
小さな時短ですが、積み重なれば大きな差になります。
もっと早く知っていれば、あのスクロール地獄は何だったのか(笑)。

タイトルとURLをコピーしました