質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1926閲覧

別フォルダの検索と抽出

kayo.h3685

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

0クリップ

投稿2018/06/05 05:01

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
フォルダAに”請求書一覧”というファイルがあり、月別にシートがあります。
各シートの中の配列は
A   B    C    D   E  F   G
日付 請求№ 見積番号 受注先名 件名 入金日 金額
で、セルAは共通
セルB~G(当社請求書)
セルH~M(他社請求書)
セルN~S(指定請求書1)
セルT~Y(指定請求書2)
となっています。

次にフォルダBに”見積書セレクト”というファイルがあります。
1シート目は目次となっていて、各担当者の名前等が入っています。
2シート目以降、各担当者別にシートが作ってあります。
各シートの中の配列は
A    B    C    D   E   F   G   H   I  J
日付 見積番号 受注先名 件名 見積金額 区分 請求日 請求№ 金額 入金日
となっています。

フォルダA”請求書一覧”を入力したら、その入力データの(セルA・C・D・E もしくは
セルA・I・J・K もしくはセルA・O・P・Q もしくはA・U・V・W)で
フォルダB”見積書セレクト”ファイルを検索し、該当したら、
請求書一覧          見積書セレクト
セルA(日付)       →  セルG(請求日)

セルB(請求№) もしくは →  セルH(請求№)
セルH or N or T

セルF(入金日) もしくは  → セルJ(入金日)
セルL or R or X

セルG(金額) もしくは   → セルI(金額)
セルM or S or Y
と自動転記することは可能でしょうか?

まず”請求書一覧”が(当社請求書)・(他社請求書)…と大きく4列に分かれている
ことでつまずき、複数シートの検索の仕方もうまくいきませんでした。
さらに別フォルダになっているので、いろいろと調べましたが、読み込み方が解りませんでした。
出来るところまでは、関数でと思ったのですが、見積番号は無いこともあますので、関数では複雑になりすぎて、マクロを検討中です。

ただ、マクロに関しては最近、独学で学び始めたばかりの初心者ですので、どこまでを
処理できるのか、出来なければ、どれを優先するのか、それも含めてアドバイスを頂ければ
ありがたいです。

どうぞ宜しくお願いします。

kazto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kayo.h3685

2018/06/05 06:46

ご意見ありがとうございました。確かにやりたいことだけを書いてしまい申し訳ありませんでした。自分なりに頑張って組んでみて、具体的な不明点が出てきましたら、またお力をお借りしたいと思います。
guest

回答1

0

ベストアンサー

初心者なら覚える事は多いですね。

FSO (FileSystemObject)
Bookオブジェクト
Sheetオブジェクト
Rangeオブジェクト
If - End If 構文
For - Next 構文
Function の作り方
デバッグ(イミディエイトウィンドウ、プロパティウィンドウ、ブレークポイント、F5、F8:ステップ実行)

まぁがんばってみてください。

投稿2018/06/05 05:07

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ExcelVBAer

2018/06/05 05:10

プロなら1日以内で作れると思いますが、 あなたならどれくらいかかるか。。。 いつまでに必要なんでしょうか?
kayo.h3685

2018/06/05 06:34

早速の返信ありがとうございました。 やりたいことの説明だけですみませんでした。 1ヶ月ほどは時間がありますので、自分なりに頑張って、また質問したいと思います。
ExcelVBAer

2018/06/05 06:42

では最初に、デバッグを覚えましょう。急がば回れです。 Function Test() Dim メッセージ As String メッセージ = "Hellow VBA" Call MsgBox(メッセージ) End Function この関数を新規モジュールに貼り付けて、 関数の中を選択して F8 を押してみましょう。 黄色の矢印が、プログラムが動く行です。 F8を押す度にプログラムが実行され、矢印が動いていきます。 F5を押すと一気に処理されます。 プロパティウィンドウを表示してみましょう。 F8を押しながら見ていると、変化があるはずです。 それが「変数」に「値」が入る瞬間です。 まぁ後は適当に自分で調べてみてください。 あ、初期設定が必要だった。 VBEのツールのオプションで、 自動構文チェック ⇒ OFF 変数の宣言を強制 ⇒ ON としましょう。
ExcelVBAer

2018/06/05 06:51

参考までに初心者にオススメの良書を 「ExcelVBAを実務で使い倒す技術」 ※回しモンちゃいますんで~
kayo.h3685

2018/06/05 06:56

ありがとうございます。 いままで関数で何とかしのいでいましたが、限界もあり、VBAを独学で勉強中です。 会社にはもちろん詳しい方は誰も居なく、いろいろと検索しながらなので、実践となると躊躇してしまっていました。 いただいたアドバイスを元に、やってみます! またつまづきましたら、質問をしたいと思いますので、宜しくお願い致します。 ありがとうございます。
ExcelVBAer

2018/06/06 00:10 編集

自分も昔そういう立場から始まったんですよね~ 誰にも相談できないのはツライ立場ではありますが、 裏を返せば、少し抜き出るだけで主導権を握り、 自分の自由にできるという可能性があります また、あの頃にこの本があれば良かったのになぁって思ったのが、 おすすめした本ですので、読んで頂ければ幸いです (自分は大手書店で買いました)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問