価格改定のお知らせ資料を一括出力するマクロ【使い方と導入方法】

 

価格改定をお知らせする資料を効率よく作成したい!

 

こんな要望にお応えするマクロをご紹介します。

 

マクロを使うと、

資料に必要な情報を一覧表に入力するだけで「価格改定の挨拶文書」「見積書」「覚書」3種類の書類を一括で出力する

ことが可能です。

 

この価格改定のお知らせを一括出力するマクロはこのような業務を抱えている方におすすめ

  • 価格改定を知らせるお客さんが多い
  • 書類作成以外にも仕事がある
  • エクセルを使ったデスクワークが多い

 

この記事では価格改定のお知らせを一括出力するマクロの導入方法を図を使って詳しくご紹介しています。

 

書類の様式が決められない!関係書類を一つ一つ手作業で作成している!

このような方は是非参考にしてみてください。

 

広告

価格改定のお知らせ資料を一括出力するマクロとは

 

価格改定のお知らせ資料を一括出力するマクロとは、

価格改定のお知らせに関する資料を一瞬で出力することができる

プログラミングのことです。

 

価格改定のお知らせに関する資料の種類がこちら

  • 価格改定に至った簡単な経緯を説明文を記入した通知文書
  • 価格改定前(現行)の見積もり
  • 価格改定後の見積もり
  • 契約書又は覚書

 

 

 

Left Caption

ひらめく人

これらの資料を一瞬で作成することが可能

 

一旦、「設定」シートに記載した情報はいつでも出力することができるので、過去に作成した価格改定のお知らせ資料をすぐに出力することができます

 

 

 

価格改定のお知らせを周知する相手先が多ければ多いほど効力を発揮するマクロになっています。

 

通知文の作成

価格改定に至った簡単な経緯を説明文を記入した通知文書の様式がこちら

 

今回は2023年10月から開始されるインボイス制度と昨今の物価高騰を理由とした通知文書を作成してみました。

 

通知文は、

相手方に失礼がないように、かつ価格改定の経緯をしっかりと伝える

必要があります。

 

「価格改定のお知らせ通知文 テンプレート」とネット検索すると、いろんな通知文書を閲覧することができます。ぜひ業務内容に合った通知文書を作成してみてください。

 

価格改定前と後の見積書作成

価格改定前後の見積書の様式がこちら

 

見積書は、パッと見ただけで内容が確認できるシンプルな様式がおすすめです。

 

価格改定前の見積書と価格改定後の見積書を見比べることで、どのように価格が変化したのかすぐに確認することができます

 

設定シートに「品目」「単価」「数量」を入力すると合計は自動計算するマクロになっているので、感覚的に見積書の作成が可能です。

 

 

契約書もしくは覚書の作成

覚書の様式がこちら

 

覚書とは、一般的には「覚書」とは、忘れないように書き留めておくこと、その文書、メモ、備忘録などを指します。

 

大したことのない書類と感じられるかもしれませんが、契約行為が成されるビジネスの場では契約書と同様の効力を持つほど重要な書類になります。

 

今回のように価格改定を行う場合、「価格変更したことをお互いが承認しましたよ!」という証拠になる書類です。

 

覚書には以下のような項目が必要となります。

  • 件名
  • 変更内容
  • 内容を確認したことを証拠づけるための押印

 

内容が不十分だと後にトラブルに発展する可能性があるので、しっかりとした様式で契約書、または覚書を作成しましょう。

 

私は仕事の関係上、50件以上のお客さんに価格改定のお知らせを周知しなければなりません。

書類の作成以外に打合せの日程調整や契約内容の確認といった準備が必要なのでめちゃくちゃ大変でしたが、マクロを作っていたおかげで効率よく仕事を進めることができました。

 

価格改定のお知らせ資料を一括出力するマクロのように、

ある情報を元にいろんな種類の書類を作成するマクロは仕事でめちゃくちゃ使えるので、

この記事で紹介しているマクロ導入方法を是非チェックしてみてください。

 

 

価格改定のお知らせ資料を一括出力するマクロの使い方

価格改定のお知らせ資料を一括出力するマクロの使い方はとってもシンプルです。

 

1.「設定」シートに必要な情報を記入する

 

自社名、住所、相手先会社名、連絡先など価格改定のお知らせ資料に必要な情報を右(列方向)に向かってどんどん記入していきます。

 

情報が蓄積されてくるとコピペできるので作業が楽になっていくはずです。

 

情報の記入作業を少しでも楽にするために「記入欄表示マクロ」を導入しています。

 

通知文の情報を記入する場合、「通知文記入欄表示」というボタンを押下、

見積書の情報を記入する場合、「見積書記入欄表示」というボタンを押下、

することで記入欄を限定することが可能です。

 

「記入欄表示マクロ」を上手に利用すれば情報の入力作業がとても楽になるので是非有効活用してみてください。

 

 

2.テキストボックスに番号を入力し「実行」ボタンを押下

 

出力したい書類の番号をテキストボックスに入力し、「実行」ボタンを押下するだけでマクロを利用することが可能です。

 

Left Caption

ガッツポーズの人

価格改定のお知らせ資料を一括出力するマクロの使い方はたったこれだけ

 

めちゃくちゃ簡単に4種類の資料を一括出力することが可能になります。

 

 

記事の最後では、紹介している価格改定のお知らせ資料を一括出力するマクロが設定されたエクセルファイルをダウンロードできるサイトを紹介しています。

 

価格改定のお知らせ資料を一括出力するマクロを使ってみたいという方は是非ダウンロードしてみてください。

 

 

価格改定のお知らせ資料を一括出力するマクロの導入方法

価格改定のお知らせ資料を一括出力するマクロの導入方法をご紹介していきます。

 

設定しているマクロにはさほど難しいコードは使われていないのですが、

様式の設定が結構めんどうな作業になります。

 

業務内容に合わせてマクロを導入しようと考えている方は根気よく頑張ってみてください。

 

1.各種書類の様式設定

マクロのコードを設定する前に各種資料の様式を作り込む必要があります。

 

コードの作成後に様式の変更が生じるとかなりめんどうな作業になるので、後々様式の変更がないようしっかり作り込んでください

 

通知文の様式は下記のように作り込んでいってください。

 

まずは書類全体の作り込みを行います。

次に編集が必要な項目の場所(セル番地)を決定していきます。

最終的に編集が必要な項目が設定シートから転記される情報になりるので、セルの場所と大きさに注意してください。

 

 

同じように見積書と覚書の様式を作り込んでいきます。

 

 

様式の設定はこれで完了です。

様式はテキストの配置、全体のバランスがとても重要です。時間をかけて作り込んでください。

 

2.「設定」シートを作成

各種資料の様式を作り込んだ後に「設定」シートを作り込んでいきます。

 

価格改定のお知らせ資料を一括出力するマクロの「設定」シートの構造はこんな感じです。

 

各種資料にどのような情報を転記するかで「設定」シートに必要な情報が決定します。

 

項目は右方向(列方向)に追加してください。

 

一覧表が右方向(列方向)に長くなって編集しづらい!と感じる方は「記入欄表示マクロ」を導入することでストレスを解決することが可能です。

 

下記の記事では、列幅を自動調整するマクロについてご紹介しています。

列幅を自動調整するAutoFit機能を導入すれば使いやすい一覧表に仕上げることができます。

是非使い方をマスターしてみてください。

 

3.マクロの設定

 

VBAを開き、標準モジュールを作成

 

Module1にコードを記入する

 

 

Module1に記入するサンプルコード(転記マクロ)


Sub 転記()
''''''''''''''''''''''''''Sheetの区別""""""""""""""""""""""""""""
Dim Ash As Worksheet
Dim Bsh As Worksheet
Dim Csh As Worksheet
Dim Dsh As Worksheet
Dim Esh As Worksheet
Set Ash = ThisWorkbook.Worksheets("設定")
Set Bsh = ThisWorkbook.Worksheets("通知文")
Set Csh = ThisWorkbook.Worksheets("価格改定前見積もり")
Set Dsh = ThisWorkbook.Worksheets("価格改定後見積もり")
Set Esh = ThisWorkbook.Worksheets("覚書")
''''''''''''''''''''''''''ユーザーフォームで入力した値を変数iで取得""""""""""""""""""""""""""""
    i = UserForm1.TextBox1.Value
    ''''''''''''''''''''''''''一覧表から各書類へ情報を転記する""""""""""""""""""""""""""""
    '日付け
    Bsh.Cells(2, 14) = Date
    Bsh.Cells(2, 14).NumberFormatLocal = "ggge年m月d日"
    '自社名①
    Bsh.Cells(4, 17) = Ash.Cells(i + 6, 3)
    Bsh.Cells(4, 17).HorizontalAlignment = xlRight
    Csh.Cells(4, 17) = Ash.Cells(i + 6, 3)
    Csh.Cells(4, 17).HorizontalAlignment = xlRight
    Dsh.Cells(4, 17) = Ash.Cells(i + 6, 3)
    Dsh.Cells(4, 17).HorizontalAlignment = xlRight
    Esh.Cells(37, 11) = Ash.Cells(i + 6, 3)
    Esh.Cells(37, 11).HorizontalAlignment = xlLeft
    '自社名②
    Bsh.Cells(5, 17) = Ash.Cells(i + 6, 4)
    Bsh.Cells(5, 17).HorizontalAlignment = xlRight
    Csh.Cells(5, 17) = Ash.Cells(i + 6, 4)
    Csh.Cells(5, 1).HorizontalAlignment = xlRight
    Dsh.Cells(5, 17) = Ash.Cells(i + 6, 4)
    Dsh.Cells(5, 17).HorizontalAlignment = xlRight
    '郵便番号と住所①
    Bsh.Cells(6, 17) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 5) & Space(2) & Ash.Cells(i + 6, 6)
    Bsh.Cells(6, 17).HorizontalAlignment = xlRight
    Csh.Cells(6, 17) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 5) & Space(2) & Ash.Cells(i + 6, 6)
    Csh.Cells(6, 17).HorizontalAlignment = xlRight
    Dsh.Cells(6, 17) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 5) & Space(2) & Ash.Cells(i + 6, 6)
    Dsh.Cells(6, 17).HorizontalAlignment = xlRight
    Esh.Cells(36, 11) = "〒" & Space(1) & Ash.Cells(i + 6, 5) & Space(2) & Ash.Cells(i + 6, 6) & Ash.Cells(i + 6, 7)
    Esh.Cells(36, 11).HorizontalAlignment = xlLeft
     '住所②
    Bsh.Cells(7, 17) = Ash.Cells(i + 6, 7)
    Bsh.Cells(7, 17).HorizontalAlignment = xlRight
    Csh.Cells(7, 17) = Ash.Cells(i + 6, 7)
    Csh.Cells(7, 17).HorizontalAlignment = xlRight
    Dsh.Cells(7, 17) = Ash.Cells(i + 6, 7)
    Dsh.Cells(7, 17).HorizontalAlignment = xlRight
    '連絡先①
    Bsh.Cells(8, 17) = "連絡先" & Space(2) & Ash.Cells(i + 6, 8)
    Bsh.Cells(8, 17).HorizontalAlignment = xlRight
    Csh.Cells(8, 17) = "連絡先" & Space(2) & Ash.Cells(i + 6, 8)
    Csh.Cells(8, 17).HorizontalAlignment = xlRight
    Dsh.Cells(8, 17) = "連絡先" & Space(2) & Ash.Cells(i + 6, 8)
    Dsh.Cells(8, 17).HorizontalAlignment = xlRight
    '連絡先②
    Bsh.Cells(9, 17) = "FAX" & Space(2) & Ash.Cells(i + 6, 9)
    Bsh.Cells(9, 17).HorizontalAlignment = xlRight
    Csh.Cells(9, 17) = "FAX" & Space(2) & Ash.Cells(i + 6, 9)
    Csh.Cells(9, 17).HorizontalAlignment = xlRight
    Dsh.Cells(9, 17) = "FAX" & Space(2) & Ash.Cells(i + 6, 9)
    Dsh.Cells(9, 17).HorizontalAlignment = xlRight
    If Ash.Cells(i + 6, 11) = "" Then
    '相手会社名①
    Bsh.Cells(4, 1) = Ash.Cells(i + 6, 10) & Space(2) & "御中"
    Bsh.Cells(4, 1).HorizontalAlignment = xlLeft
    Csh.Cells(4, 1) = Ash.Cells(i + 6, 10) & Space(2) & "御中"
    Csh.Cells(4, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(4, 1) = Ash.Cells(i + 6, 10) & Space(2) & "御中"
    Dsh.Cells(4, 1).HorizontalAlignment = xlLeft
    Esh.Cells(32, 11) = Ash.Cells(i + 6, 10)
    Esh.Cells(32, 11).HorizontalAlignment = xlLeft
    Else
    Bsh.Cells(4, 1) = Ash.Cells(i + 6, 10)
    Bsh.Cells(4, 1).HorizontalAlignment = xlLeft
    Bsh.Cells(5, 1) = Ash.Cells(i + 6, 11) & Space(2) & "御中"
    Bsh.Cells(5, 1).HorizontalAlignment = xlLeft
    Csh.Cells(4, 1) = Ash.Cells(i + 6, 10)
    Csh.Cells(4, 1).HorizontalAlignment = xlLeft
    Csh.Cells(5, 1) = Ash.Cells(i + 6, 11) & Space(2) & "御中"
    Csh.Cells(5, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(4, 1) = Ash.Cells(i + 6, 10)
    Dsh.Cells(4, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(5, 1) = Ash.Cells(i + 6, 11) & Space(2) & "御中"
    Dsh.Cells(5, 1).HorizontalAlignment = xlLeft
    Esh.Cells(32, 11) = Ash.Cells(i + 6, 10) & Ash.Cells(i + 6, 11)
    Esh.Cells(32, 11).HorizontalAlignment = xlLeft
    End If
     '相手先郵便番号と住所①
    Bsh.Cells(6, 1) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 12) & Space(2) & Ash.Cells(i + 6, 14)
    Bsh.Cells(6, 1).HorizontalAlignment = xlLeft
    Csh.Cells(6, 1) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 12) & Space(2) & Ash.Cells(i + 6, 14)
    Csh.Cells(6, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(6, 1) = "住所 〒" & Space(1) & Ash.Cells(i + 6, 12) & Space(2) & Ash.Cells(i + 6, 14)
    Dsh.Cells(6, 1).HorizontalAlignment = xlLeft
    Esh.Cells(31, 11) = "〒" & Space(1) & Ash.Cells(i + 6, 12) & Space(2) & Ash.Cells(i + 6, 14) & Ash.Cells(i + 6, 15)
    Esh.Cells(31, 11).HorizontalAlignment = xlLeft
    Bsh.Cells(7, 1) = Ash.Cells(i + 6, 15)
    Bsh.Cells(7, 1).HorizontalAlignment = xlLeft
    Csh.Cells(7, 1) = Ash.Cells(i + 6, 15)
    Csh.Cells(7, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(7, 1) = Ash.Cells(i + 6, 15)
    Dsh.Cells(7, 1).HorizontalAlignment = xlLeft
     '件名
    Bsh.Cells(12, 1) = Ash.Cells(i + 6, 13)
    Bsh.Cells(12, 1).HorizontalAlignment = xlCenter
    Csh.Cells(16, 3) = Ash.Cells(i + 6, 13)
    Csh.Cells(16, 3).HorizontalAlignment = xlLeft
    Dsh.Cells(16, 3) = Ash.Cells(i + 6, 13)
    Dsh.Cells(16, 3).HorizontalAlignment = xlLeft
    Esh.Cells(5, 4) = Ash.Cells(i + 6, 13)
    Esh.Cells(5, 4).HorizontalAlignment = xlLeft
    '添付資料①
    Bsh.Cells(30, 1) = Ash.Cells(i + 6, 16)
    Bsh.Cells(30, 1).HorizontalAlignment = xlCenter
    Esh.Cells(17, 5) = Ash.Cells(i + 6, 16)
    Esh.Cells(17, 5).HorizontalAlignment = xlLeft
    If Esh.Cells(17, 5) <> "" Then
    Esh.Cells(17, 3) = "1"
    Else
    End If
    '添付資料②
    Bsh.Cells(31, 1) = Ash.Cells(i + 6, 17)
    Bsh.Cells(31, 1).HorizontalAlignment = xlCenter
    Esh.Cells(19, 5) = Ash.Cells(i + 6, 17)
    Esh.Cells(19, 5).HorizontalAlignment = xlLeft
    If Esh.Cells(19, 5) <> "" Then
    Esh.Cells(19, 3) = "2"
    Else
    End If
    '添付資料③
    Bsh.Cells(32, 1) = Ash.Cells(i + 6, 18)
    Bsh.Cells(32, 1).HorizontalAlignment = xlCenter
    Esh.Cells(21, 5) = Ash.Cells(i + 6, 18)
    Esh.Cells(21, 5).HorizontalAlignment = xlLeft
    If Esh.Cells(21, 5) <> "" Then
    Esh.Cells(21, 3) = "3"
    Else
    End If
    '請求日
    Csh.Cells(11, 15) = Ash.Cells(i + 6, 19)
    Csh.Cells(11, 15).HorizontalAlignment = xlRight
    Csh.Cells(11, 15).NumberFormatLocal = "ggge年m月d日"
    Dsh.Cells(11, 15) = Ash.Cells(i + 6, 40)
    Dsh.Cells(11, 15).HorizontalAlignment = xlRight
    Dsh.Cells(11, 15).NumberFormatLocal = "ggge年m月d日"
    '品目
    Csh.Cells(22, 1) = Ash.Cells(i + 6, 20)
    Csh.Cells(22, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(22, 1) = Ash.Cells(i + 6, 41)
    Dsh.Cells(22, 1).HorizontalAlignment = xlLeft
    Csh.Cells(23, 1) = Ash.Cells(i + 6, 24)
    Csh.Cells(23, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(23, 1) = Ash.Cells(i + 6, 45)
    Dsh.Cells(23, 1).HorizontalAlignment = xlLeft
    Csh.Cells(24, 1) = Ash.Cells(i + 6, 28)
    Csh.Cells(24, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(24, 1) = Ash.Cells(i + 6, 49)
    Dsh.Cells(24, 1).HorizontalAlignment = xlLeft
    Csh.Cells(25, 1) = Ash.Cells(i + 6, 32)
    Csh.Cells(25, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(25, 1) = Ash.Cells(i + 6, 53)
    Dsh.Cells(25, 1).HorizontalAlignment = xlLeft
    Csh.Cells(26, 1) = Ash.Cells(i + 6, 36)
    Csh.Cells(26, 1).HorizontalAlignment = xlLeft
    Dsh.Cells(26, 1) = Ash.Cells(i + 6, 57)
    Dsh.Cells(26, 1).HorizontalAlignment = xlLeft
    '単価
    Csh.Cells(22, 9) = Ash.Cells(i + 6, 21)
    Csh.Cells(22, 9).HorizontalAlignment = xlLeft
    Csh.Cells(22, 9).NumberFormatLocal = "#,###"
    Dsh.Cells(22, 9) = Ash.Cells(i + 6, 42)
    Dsh.Cells(22, 9).HorizontalAlignment = xlLeft
    Dsh.Cells(22, 9).NumberFormatLocal = "#,###"
    Csh.Cells(23, 9) = Ash.Cells(i + 6, 25)
    Csh.Cells(23, 9).HorizontalAlignment = xlLeft
    Csh.Cells(23, 9).NumberFormatLocal = "#,###"
    Dsh.Cells(23, 9) = Ash.Cells(i + 6, 46)
    Dsh.Cells(23, 9).HorizontalAlignment = xlLeft
    Dsh.Cells(23, 9).NumberFormatLocal = "#,###"
    Csh.Cells(24, 9) = Ash.Cells(i + 6, 29)
    Csh.Cells(24, 9).HorizontalAlignment = xlLeft
    Csh.Cells(24, 9).NumberFormatLocal = "#,###"
    Dsh.Cells(24, 9) = Ash.Cells(i + 6, 50)
    Dsh.Cells(24, 9).HorizontalAlignment = xlLeft
    Dsh.Cells(24, 9).NumberFormatLocal = "#,###"
    Csh.Cells(25, 9) = Ash.Cells(i + 6, 33)
    Csh.Cells(25, 9).HorizontalAlignment = xlLeft
    Csh.Cells(25, 9).NumberFormatLocal = "#,###"
    Dsh.Cells(25, 9) = Ash.Cells(i + 6, 54)
    Dsh.Cells(25, 9).HorizontalAlignment = xlLeft
    Dsh.Cells(25, 9).NumberFormatLocal = "#,###"
    Csh.Cells(26, 9) = Ash.Cells(i + 6, 37)
    Csh.Cells(26, 9).HorizontalAlignment = xlLeft
    Csh.Cells(26, 9).NumberFormatLocal = "#,###"
    Dsh.Cells(26, 9) = Ash.Cells(i + 6, 58)
    Dsh.Cells(26, 9).HorizontalAlignment = xlLeft
    Dsh.Cells(26, 9).NumberFormatLocal = "#,###"
    '数量
    Csh.Cells(22, 12) = Ash.Cells(i + 6, 22)
    Csh.Cells(22, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(22, 12) = Ash.Cells(i + 6, 43)
    Dsh.Cells(22, 12).HorizontalAlignment = xlLeft
    Csh.Cells(23, 12) = Ash.Cells(i + 6, 26)
    Csh.Cells(23, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(23, 12) = Ash.Cells(i + 6, 47)
    Dsh.Cells(23, 12).HorizontalAlignment = xlLeft
    Csh.Cells(24, 12) = Ash.Cells(i + 6, 30)
    Csh.Cells(24, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(24, 12) = Ash.Cells(i + 6, 51)
    Dsh.Cells(24, 12).HorizontalAlignment = xlLeft
    Csh.Cells(25, 12) = Ash.Cells(i + 6, 34)
    Csh.Cells(25, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(25, 12) = Ash.Cells(i + 6, 55)
    Dsh.Cells(25, 12).HorizontalAlignment = xlLeft
    Csh.Cells(26, 12) = Ash.Cells(i + 6, 38)
    Csh.Cells(26, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(26, 12) = Ash.Cells(i + 6, 59)
    Dsh.Cells(26, 12).HorizontalAlignment = xlLeft
    '価格
    Csh.Cells(22, 15) = Csh.Cells(22, 9) * Csh.Cells(22, 12)
    Csh.Cells(22, 15).HorizontalAlignment = xlLeft
    Csh.Cells(22, 15).NumberFormatLocal = "#,###"
    Dsh.Cells(22, 15) = Dsh.Cells(22, 9) * Dsh.Cells(22, 12)
    Dsh.Cells(22, 15).HorizontalAlignment = xlLeft
    Dsh.Cells(22, 15).NumberFormatLocal = "#,###"
    Csh.Cells(23, 15) = Csh.Cells(23, 9) * Csh.Cells(23, 12)
    Csh.Cells(23, 15).HorizontalAlignment = xlLeft
    Csh.Cells(23, 15).NumberFormatLocal = "#,###"
    Dsh.Cells(23, 15) = Dsh.Cells(23, 9) * Dsh.Cells(23, 12)
    Dsh.Cells(23, 15).HorizontalAlignment = xlLeft
    Dsh.Cells(23, 15).NumberFormatLocal = "#,###"
    Csh.Cells(24, 15) = Csh.Cells(24, 9) * Csh.Cells(24, 12)
    Csh.Cells(24, 15).HorizontalAlignment = xlLeft
    Csh.Cells(24, 15).NumberFormatLocal = "#,###"
    Dsh.Cells(24, 15) = Dsh.Cells(24, 9) * Dsh.Cells(24, 12)
    Dsh.Cells(24, 15).HorizontalAlignment = xlLeft
    Dsh.Cells(24, 15).NumberFormatLocal = "#,###"
    Csh.Cells(25, 15) = Csh.Cells(25, 9) * Csh.Cells(25, 12)
    Csh.Cells(25, 15).HorizontalAlignment = xlLeft
    Csh.Cells(25, 15).NumberFormatLocal = "#,###"
    Dsh.Cells(25, 15) = Dsh.Cells(25, 9) * Dsh.Cells(25, 12)
    Dsh.Cells(25, 15).HorizontalAlignment = xlLeft
    Dsh.Cells(25, 15).NumberFormatLocal = "#,###"
    Csh.Cells(26, 15) = Csh.Cells(26, 9) * Csh.Cells(26, 12)
    Csh.Cells(26, 15).HorizontalAlignment = xlLeft
    Csh.Cells(26, 15).NumberFormatLocal = "#,###"
    Dsh.Cells(26, 15) = Dsh.Cells(26, 9) * Dsh.Cells(26, 12)
    Dsh.Cells(26, 15).HorizontalAlignment = xlLeft
    Dsh.Cells(26, 15).NumberFormatLocal = "#,###"
    '小計
    Csh.Cells(28, 12) = Csh.Cells(22, 15) + Csh.Cells(23, 15) + Csh.Cells(24, 15) + Csh.Cells(25, 15) + Csh.Cells(26, 15)
    Csh.Cells(28, 12).HorizontalAlignment = xlLeft
    Csh.Cells(28, 12).NumberFormatLocal = "#,###"
    Dsh.Cells(28, 12) = Dsh.Cells(22, 15) + Dsh.Cells(23, 15) + Dsh.Cells(24, 15) + Dsh.Cells(25, 15) + Dsh.Cells(26, 15)
    Dsh.Cells(28, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(28, 12).NumberFormatLocal = "#,###"
    '消費税
    Csh.Cells(29, 12) = Csh.Cells(28, 12) / 10
    Csh.Cells(29, 12).HorizontalAlignment = xlLeft
    Csh.Cells(29, 12).NumberFormatLocal = "#,###"
    Dsh.Cells(29, 12) = Dsh.Cells(28, 12) / 10
    Dsh.Cells(29, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(29, 12).NumberFormatLocal = "#,###"
    '合計
    Csh.Cells(30, 12) = Csh.Cells(28, 12) + Csh.Cells(29, 12)
    Csh.Cells(30, 12).HorizontalAlignment = xlLeft
    Csh.Cells(30, 12).NumberFormatLocal = "#,###"
    Dsh.Cells(30, 12) = Dsh.Cells(28, 12) + Dsh.Cells(29, 12)
    Dsh.Cells(30, 12).HorizontalAlignment = xlLeft
    Dsh.Cells(30, 12).NumberFormatLocal = "#,###"
    '覚書内容
    Esh.Cells(9, 2) = "表記の件に関しまして、" & Ash.Cells(i + 6, 10) & "(以下「甲」という)と、" & Ash.Cells(i + 6, 3) & "(以下「乙」という)は、以下に記載の事項において合意した。"
    Esh.Cells(9, 2).WrapText = True
    Esh.Cells(9, 2).HorizontalAlignment = xlLeft
    Esh.Cells(27, 13) = Date
    Esh.Cells(27, 13).NumberFormatLocal = "ggge年m月d日"
    Bsh.Select
End Sub

 

 

Module1に記入するサンプルコード(リセットマクロ)


Sub リセット()
''''''''''''''''''''''''''Sheetの区別""""""""""""""""""""""""""""
    Dim Ash As Worksheet
    Dim Bsh As Worksheet
    Dim Csh As Worksheet
    Dim Dsh As Worksheet
    Dim Esh As Worksheet
    Set Ash = ThisWorkbook.Worksheets("設定")
    Set Bsh = ThisWorkbook.Worksheets("通知文")
    Set Csh = ThisWorkbook.Worksheets("価格改定前見積もり")
    Set Dsh = ThisWorkbook.Worksheets("価格改定後見積もり")
    Set Esh = ThisWorkbook.Worksheets("覚書")
 Bsh.Range(Bsh.Cells(2, 14), Bsh.Cells(2, 17)).ClearContents
 For i = 4 To 9
 Bsh.Cells(i, 1).ClearContents
 Bsh.Cells(i, 17).ClearContents
 Csh.Cells(i, 1).ClearContents
 Csh.Cells(i, 17).ClearContents
 Dsh.Cells(i, 1).ClearContents
 Dsh.Cells(i, 17).ClearContents
 Next
Bsh.Range(Bsh.Cells(12, 1), Bsh.Cells(12, 17)).ClearContents
Bsh.Range(Bsh.Cells(30, 1), Bsh.Cells(30, 17)).ClearContents
Bsh.Range(Bsh.Cells(31, 1), Bsh.Cells(31, 17)).ClearContents
Bsh.Range(Bsh.Cells(32, 1), Bsh.Cells(32, 17)).ClearContents
Csh.Range(Csh.Cells(11, 15), Csh.Cells(11, 17)).ClearContents
Dsh.Range(Dsh.Cells(11, 15), Dsh.Cells(11, 17)).ClearContents
Csh.Cells(16, 3).ClearContents
Dsh.Cells(16, 3).ClearContents
For i = 22 To 26
Csh.Cells(i, 1).ClearContents
Dsh.Cells(i, 1).ClearContents
Csh.Range(Csh.Cells(i, 9), Csh.Cells(i, 11)).ClearContents
Dsh.Range(Dsh.Cells(i, 9), Dsh.Cells(i, 11)).ClearContents
Csh.Cells(i, 12).ClearContents
Dsh.Cells(i, 12).ClearContents
Csh.Range(Csh.Cells(i, 15), Csh.Cells(i, 17)).ClearContents
Dsh.Range(Dsh.Cells(i, 15), Dsh.Cells(i, 17)).ClearContents
Next
For i = 28 To 30
Csh.Range(Csh.Cells(i, 12), Csh.Cells(i, 17)).ClearContents
Dsh.Range(Dsh.Cells(i, 12), Dsh.Cells(i, 17)).ClearContents
Next
Esh.Range(Esh.Cells(5, 4), Esh.Cells(6, 16)).ClearContents
Esh.Range(Esh.Cells(9, 2), Esh.Cells(11, 16)).ClearContents
For i = 17 To 21 Step 2
Esh.Cells(i, 3).ClearContents
Esh.Cells(i, 5).ClearContents
Next
Esh.Range(Esh.Cells(27, 13), Esh.Cells(27, 16)).ClearContents
For i = 31 To 38
Esh.Cells(i, 11).ClearContents
Next
End Sub

 

ユーザーフォームの作成

 

コマンドボタンとテキストボックスを作成

 

 

「実行」以外のコマンドボタンは「記入欄表示マクロ」に関するものなので、この記事での説明は省略させていただきます。

 

コマンドボタンにコードを設定

 

 

UserForm1のコマンドボタンに記入するサンプルコード

Private Sub CommandButton1_Click()
Call リセット
Call 転記
End Sub

 

UserForm1を表示させるコード

「設定」シートにユーザーフォームを表示させる方法をご紹介します。

 

Sheet1(設定)にユーザーフォームを表示させるコードを記入

 

 

 

Sheet1(設定)のに記入するサンプルコード

Private Sub WorkSheet_Activate()
UserForm1.Show vbModeless
End Sub

 

以上で「価格改定のお知らせ資料を一括出力するマクロ」の導入が完了です。

手順が少し多くなってしまいましたが、コードはコピペで使い回すことができるので是非挑戦してみてください。

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

写真貼付けマクロの使い方を示したイラスト

 

 

Left Caption

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。

 

 

価格改定のお知らせ資料を一括出力するマクロのダウンロード

下記のサイトでは、この記事で紹介している「価格改定のお知らせ資料を一括出力するマクロ」をダウンロードしてお使いいただくことが可能です。


使い方は、

資料に必要な情報を記入後、出力したい番号を入力して実行ボタンを押下する

たったこれだけです。

 

めちゃくちゃシンプルで使いやすいマクロになっているので是非お試しください。

 

業務内容に合った様式に変更してマクロを使いたい!こんな機能を追加してより便利にしたい!

など質問、要望があればお気軽にお問合せください。