前提・実現したいこと
いつもこちらのコミュニティには大変お世話になっております。
事務作業でVBAを使用している初心者です。ご覧いただきありがとうございます。
さっそくですが、ご相談したい内容に移らせていただきます。
現在、営業で管理している請求データから、請求書テンプレートに必要な情報だけを転記し、
請求書を自動で印刷できるようになったらいいな思い、マクロ作成に取り組んでおります。
具体的には、以下のような請求データから「月」および「印刷日」のふたつの条件に合致した
行だけを取得し、請求書テンプレートに記載したいです。
そこで、最初に以下のような入力フォームを表示し、
「月」および「印刷日」の条件を入力してもらおうと思っております。
「月」はコンボボックスで、「請求日」はオプションボタンで処理しようと考えております。そこで、
・オプションボタン⇒選択した請求日を黄色塗りつぶし
・コンボボックス⇒選択した月を水色塗りつぶし
を行い、ふたつの条件に合致した行のみを転記処理するようマクロを組む予定です。
しかし、この方法で処理しようとすると、オプションボタンの選択を外した場合に
再度塗りつぶしをクリアにする処理も書かなければならず、かなり長く、重くなってしまいます。
処理したい情報を塗りつぶし選択する以外に、オプションボタンやコンボボックスで選択した
データのみを処理する別の方法はありませんでしょうか?
抽象的な質問で大変申し訳ありませんが、もっと簡単に処理できる方法がありましたら
どなたかご教授いただけますと幸いです。
発生している問題・エラーメッセージ
現在オプションボタンで設定している処理がこちらです。
Private Sub Opt10th_Click() If Opt10th.Value = True Then Dim fnd As Range Dim fnd_all As Range Dim adr As String Set fnd = Columns("Z").Find("10日") If fnd Is Nothing Then MsgBox "請求日「10日」が見つかりませんでした。" Exit Sub Else Set fnd_all = fnd adr = fnd.Address End If Do Set fnd = Columns("Z").FindNext(After:=fnd) If fnd.Address = adr Then Exit Do Else Set fnd_all = Union(fnd_all, fnd) End If Loop fnd_all.Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 End With End If End Sub
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/25 08:03
2021/01/25 08:18 編集
2021/01/25 08:51 編集