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

 

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

 

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

 

マクロを使うと、

資料に必要な情報を一覧表に入力するだけで「価格改定の挨拶文書」「見積書」「覚書」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未経験者がマクロを導入するには2つの方法があります。

 

その2つの方法とは、

  1. サンプルコードを自分で設定できるくらいの基礎知識を身に付ける
  2. マクロの開発を専門家に依頼する

です。

 

この2つの方法について詳しくご紹介していきます。

 

基礎知識を身に付けてマクロを導入する

基礎知識を身に付けるだけで実践向けのマクロをバンバン導入することができるようになります。

実際に私は、本格的にVBA学習を初めて1ヶ月くらいで実用性の高いマクロを開発できるようになりました。

 

大事なことは、

VBAを使って何をしたいのか明確なビジョンを持つこと!

そして、現状のレベルに合った教材で勉強をすること!

この2点です。

 

「あんなことがしたい!」「こんな処理を自動化したい!」という想いを持ちながらレベルに合った教材で勉強することで、

数日で実務向けのマクロを作成することができるようになります。

 

Left Caption

ガッツポーズの人

実際に私がそうでした!!

 

VBA未経のとき私が行った勉強方法が、

初心者向けの参考書を眺める!

です。

 

勉強するぞ!と意気込んで勉強するのではなく、

こんなことができるのか!!と眺めるくらいが丁度いいと個人的に考えています。

 

「こんなマクロを今の業務に導入したら働かなくていいじゃん」

「このマクロがあれば職場で問題になっている処理を自動化できるじゃん」

 

こんな感じで参考書を眺めているうちに自分でもマクロを作ってみたくなり、

今では頭の中で思い描いた処理を自由にコード化するくらいにまで上達しました。

 

 

下記の記事では、VBA未経験者におすすめのVBA参考書をいくつかご紹介しています。

 

 

スラスラと読み進めることができて、「こんなことやってみたい!!」と感じる内容になっています。

 

プログラミングって難しそう!自分には絶対ムリ!!と考えている方は是非参考にしてみてください。

 

参考書と併せて、マメBlogで発信しているVBA学習に関する情報を発信しているメルマガも参考にして頂けると嬉しいです。

  • 仕事で使えるマクロの作り方
  • 効率の良い学習方法
  • マクロを使えるようになって変化した仕事

 

プログラマーではない、ただエクセルが好きな私がVBAに関するお得な情報を発信しています。

 

近頃はメルマガ読者様から、「こんなこと自動化したい!」「こんなような処理ってVBAで作るの難しい?」などメッセージを頂けるようになりました。

メルマガを通していろんな情報交換ができればと思っています。

 

Left Caption

ひらめく人

VBAに興味のある方はまずメルマガに登録してお得な情報をゲットしてみてください。

 

 

マクロ開発を専門家に依頼する

VBA未経験者がマクロを導入する最も簡単な方法は、

専門家にマクロ開発を依頼する

です。

 

どんな業務内容なのか、どのような処理を自動化したいのか、を伝えるだけで最適なマクロを開発・設定してくれます。

 

この記事で紹介している「価格改定のお知らせ資料を一括出力するマクロの導入方法」を参考に、自身のエクセルにマクロを設定することは可能ですが、

VBA未経験者にとって、いきなりコードをコピペして編集することは難易度高めだと思います。

 

特に、「価格改定のお知らせ資料を一括出力するマクロ」は複数のシートへ情報を転記させる必要があるので、

コードの編集箇所が多くVBA未経験者には結構難しい作業になるはず。

 

マクロの開発依頼サービスを利用すれば、VBA未経験者でもマクロが設定されたエクセルファイルを貰うことでマクロの導入が可能です。

 

専門家がマクロを作っている間本業に専念することができるので、最も効率的なマクロ導入方法だといえます。

 

マクロの開発依頼には、以下のような方法があります。

 

  • クラウドソーシングサイトを利用する
  • プログラミング開発会社に依頼する
  • 個人で受注している方に依頼する

 

個人への依頼としては、この「マメBlog」でもマクロ開発依頼を承っております。

 

価格改定のお知らせ資料を一括出力するマクロ以外に、「写真の貼付けマクロ」や「転記マクロ」、「スケジュール管理マクロ」などの開発が可能です。

マメBlogの特徴がこちら

 

  • 安価
  • スピード納入
  • 業務内容に合わせた柔軟なマクロ開発

 

興味のある方は下記のサイトをチェックしてみてください。

 

 

 

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

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


使い方は、

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

たったこれだけです。

 

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

 

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

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