自分流のFAX注文書をエクセルで作ります。使い勝手OKで業務効率アップです。

faxhatyusyoeyecatch

お待たせいたしました。

皆さま待望の、書誌FAX注文書の自動作成VBAについて説明を行っていきます。

完成すれば、今までの大変面倒な手書き作業から解放されます。頑張って取り組んでいきます。

先の記事でも書きましたが、エクセルBOOKは2つ作ります。

まず最初に

”発注したい書誌情報収集”と”システム全体をコントロールする”BOOKについて説明していきます。

ここからエクセルVBAの説明をしていきますが、とりあえず先に結果を見たいと思われている方もあるかと思います。そんな方に、完成の「FAX注文書作成」VBAソフトをダウンロードしていただけるようにしています。

ダウンロードしたエクセルファイルはVBAコードの保護をしていますので、改変することはできません。

一部にデフォルト設定のVBAコードのままになっています。”余分な語句”を取り除くことによって「電話帳」機能を使うことができます。

“FAX注文書作成エクセル” をダウンロード faxtyumon.zip – 3833 回のダウンロード – 100 KB

取説については「最初から使い方の説明を」をご覧ください。

このソフトはご自分で業務でお使いいただくのはフリーですが、

転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。

FAX注文書作成の関連の記事はこちらになります。

「FAX発注書作成」の記事一覧を開く

エクセルBOOKを開き初期設定をする

以前に領収書作成についてエクセルVBAで作業していただいていれば、初期設定は不要です。

この記事で初めてという方は、

領収書作成の「エクセルの初期設定 準備作業をします」の記事で事前準備をしてください。

自分流のFAX注文書をエクセルで作っていきます

Sheet2(シート)名の変更

左下にあるタブで”Sheet2”となっている個所をダブルクリックして”名称の変更状態”にしてください。

DeleteボタンでSheet2の文字を消して「書誌データ貼付」とタイプしてください。

Sheet3(シート)名の変更

DeleteボタンでSheet3の文字を消して「抽出データ」とタイプしてください。

BOOK名を「FAX注文書作成」に変更

「ファイル」タブ→「名前を付けて保存」をクリックしてください。

保存場所は適宜分かり易い場所へ、

保存名は「FAX注文書作成.xlsm」としてください。

「書誌データ貼付」シートでの作業1

「書誌データ貼付」シートを開いてください。

下の項目をタイプしてください。

  • G1セルに「抽出項目」、H1セルに「抽出セル名」
  • G2セルに「書名」
  • G3セルに「副書名」
  • G4セルに「出版社」
  • G5セルに「著者」
  • G6セルに「本体価格」
  • G7セルに「ISBN」

こういう感じになると思います。(ビジュアルはお好み

エクセルVBAを記述していきます

VBE(ビジュアルベーシックエディター)を開く

「書誌データ貼付」シートのA列に書名・出版社名などのデータを貼り付けます。

先ほど作った表はA列のどの位置にそれぞれの必要なデータが入っているかを指定する表です。

次に、吸い上げたデータを「抽出データシート」に表示します。

VBEを開き”標準モジュール”を挿入してください。

挿入方法については以前の記事で確認いただけます。

挿入”タブから”標準モジュール”をクリック

参考記事です。
エクセルVBA 始めての起動。VBEの立ち上げ、保存と終了

エクセルVBAの組み立て マクロ名設定

マクロ名を「書誌データ登録」とします。

  • 書誌データ貼付シートのデータ位置指定のための変数の宣言
  • 抽出データシートのデータ項目タイトル表示とそのデータ表示行数の変数

について記述します。

MEMO

入力セルの最終行を取得する方法はこの記事を参考にしてください。

データ入力済セルの最終行番号を取得するVBAコード

コード①

Sub 書誌データ登録()

‘変数の宣言
Dim Boname As String
Dim Bosname As String
Dim Shuname As String
Dim Wriname As String
Dim Cos As Long
Dim IsCode As String

Dim nRow As Long

‘抽出データシートのデータ項目を記述
‘A列を使ってデータ入力済の行数を数える

Worksheets(“抽出データ”).Select
Range(“A1”).Value = “ISBN”
Range(“B1”).Value = “書名”
Range(“C1”).Value = “出版社名”
Range(“D1”).Value = “著者名”
Range(“E1”).Value = “本体価格”
Range(“F1”).Value = “冊数”
Range(“G1”).Value = “客注名”

nRow = Range(“A1”).CurrentRegion.Rows.Count + 1
End Sub

faxhatyusyo002a

書名・副書名・出版社・著者・本体価格・ISBNのデータ取り出し

個別のデータを取り出していきます。

書誌情報をどのWebから取り出すかによって、その情報データの表記方法が少し変わってきます。

例えば、「本体価格」項目で表記方法が ”2280円(本体)” と ”2,462円(本体2,280円+税)” の違いなどがあります。

発注金額合計を計算するためには、「本体価格」項目が数値のみで表示させる必要があります。

利用されるユーザーによって利用条件が変わりますので、

ここでのコードは、デフォルト(元の表記のまま)でデータ抽出を行う設定にしています。

先ほど記述したコードの「End Sub」の直前に挿入します。

コード②

Worksheets(“書誌データ貼付”).Select
Boname = Range(“H2”).Value
Bosname = Range(“H3”).Value
Shuname = Range(“H4”).Value
Wriname = Range(“H5”).Value
Cos = Range(“H6”).Value
IsCode = Range(“H7”).Value

‘書名
 Worksheets(“書誌データ貼付”).Range(Boname).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“B” & nRow)
‘副書名
 Worksheets(“書誌データ貼付”).Range(Bosname).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“I” & nRow)
‘書名連結
  Worksheets(“抽出データ”).Select
 Range(“B” & nRow) = Range(“B” & nRow) & ” ” & Range(“I” & nRow)
 Range(“I” & nRow) = “”
‘出版社
 Worksheets(“書誌データ貼付”).Range(Shuname).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“C” & nRow)
‘著者
 Worksheets(“書誌データ貼付”).Range(Wriname).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“D” & nRow)
‘本体価格
 Worksheets(“書誌データ貼付”).Range(Cos).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“E” & nRow)
‘ISBN
 Worksheets(“書誌データ貼付”).Range(IsCode).Copy _
  Destination:=Worksheets(“抽出データ”).Range(“A” & nRow)
 Worksheets(“抽出データ”).Range(“A” & nRow).NumberFormatLocal = “0_ “

この様になります。

faxhatyusyo003a

MEMO

Webからのデータを日販NOCSから入手する場合は「本体価格」のコードをこのように変更できます。

'本体価格
Dim L as Long
Dim M as Long
Dim kkkm as Long
Dim N as Long
Dim kkk as Long 
    L = Len(Worksheets("書誌データ貼付").Range(Cos))
    M = InStr(Worksheets("書誌データ貼付").Range(Cos), "体")
    kkkm = Right(Worksheets("書誌データ貼付").Range(Cos), L - M)
    N = InStr(kkkm, "円")
    kkk = Left(kkkm, N - 1)
    Worksheets("抽出データ").Range("E" & nRow) = kkk

Webからのデータを出版書誌データベースから入手する場合は「著者」と「本体価格」のコードをこのように変更できます。

'著者
Dim Ln as Long
Dim NNN as String
    Ln = Len(Worksheets("書誌データ貼付").Range(Wriname))
    NNN = Right(Worksheets("書誌データ貼付").Range(Wriname), Ln - 2)
    Worksheets("抽出データ").Range("D" & nRow) = NNN
'本体価格
Dim L as Long
Dim N as Long
Dim kkk as Variant 
    L = Len(Worksheets("書誌データ貼付").Range(Cos))
    N = InStr(Worksheets("書誌データ貼付").Range(Cos), "円")
    kkk = Left(Worksheets("書誌データ貼付").Range(Cos), L - N)
    Worksheets("抽出データ").Range("E" & nRow) = kkk
MEMO

Len関数についてはこちらを参考にしてください。

Len関数・LenB関数で文字列の文字数を知る方法。使用例で解説します

InStr関数についてはこちらを参考にしてください。

Instr関数・InstrRev関数は文字列を検索する。ファイルパス取得に威力

Right関数、Left関数についてはこちらを参考にしてください。

Mid関数・Right関数・Left関数は文字列操作の基本。使用例で解説します

注文冊数と客注名を入力する

注文冊数と客注名を ”インプットボックス” を使ってデータを入力します。

さらに列幅を調節して見やすくします。

コード③

‘冊数
Worksheets(“抽出データ”).Select
mymsg1 = “冊数を記入ください。”
mytitle1 = “冊数”
mysasu = Application.InputBox(prompt:=mymsg1, Title:=mytitle1, Type:=1)
If mysasu = “” Then mysasu = 1
Range(“F” & nRow).Value = mysasu
‘客注名
Worksheets(“抽出データ”).Select
mymsg2 = “客注名を記入ください。”
mytitle2 = “客注名”
mykyaku = Application.InputBox(prompt:=mymsg2, Title:=mytitle2, Type:=2)
If mykyaku = “” Then mykyaku = “”
Range(“G” & nRow).Value = mykyaku
‘列幅自動調節
Worksheets(“抽出データ”).Select
Columns(“A:E”).AutoFit

 Worksheets(“書誌データ貼付”).Range(“A1:A100”).Clear
 Worksheets(“書誌データ貼付”).Activate
 Range(“A1”).Select

faxhatyusyo004a

データ抽出ボタンを設置する

「書籍データ貼付シート」に ”書誌データ登録マクロ” を実行するボタンを設置します。

MEMO

コマンドボタンをシートに設定する方法はこちらが参考になります。

エクセルVBA コマンドボタンをシートに設置する2つの方法

開発タブから挿入をクリック ボタン(フォームコントロール)を選択します。

faxhatyusyo005a

ボタンにマクロを登録します。

faxhatyusyo006a

ボタン名を設定します。

faxhatyusyo007a

ここまでの完成形です。

faxhatyusyo008a

ここまでのまとめ

Webからデータをコピーして注文書籍の情報を取り込み、一覧表としてまとめることができました。

使い方を簡単に説明しますと、

まず、Webからデータコピーの貼り付け方法は、

A1セルをクリックして右クリック→形式を選択して貼り付け→クリック→テキストを指定

テキストデータとしてA列の各セルに上から下へズラズラとペーストされていきます。

必要項目の入っているセル番号を例えば”A1”とか”A13”という様に「抽出セル名」の欄にタイプしてください。

最後に、書誌データ抽出ボタンを押せば 「抽出データ」シートに情報が蓄積されていきます。

次は、このエクセルBOOKにつなげて、FAX注文シートを作成します。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

Excelマクロ&VBA超入門 今すぐ使えるかんたんぜったいデキます!
エクセルVBAを初めて勉強するときに効く
vbastudy016a
vbastudy017a

電子書籍版「Excelマクロ&VBA超入門」をamazonで見てみる

(著者)井上香緒里
(出版社)技術評論社
(税込価格)1,738円(本体1,580円+税)

マクロとVBAについて学んでみたいけれど,いまひとつ自信がないという方のために,ひとつひとつの操作を丁寧に解説する1冊目の教科書です。
エクセルVBAの「い・ろ・は の い」から説明していますので、安心して取り組める参考書です。
例題として、
  • 「データ消去」「シートのコピー」「メッセージボックス」の機能を持つお小遣い帳
  • 「入力フォーム」の機能を持った歩数表
2つの題材ファイルを作成しながら,マクロとVBAの基本を学習していきます。

エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたい内容を纏めています。

「VBA最速理解」の記事一覧を開く

今回の記事はここまでです。   最後までご覧いただき有難うございました。

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。