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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

3回答

1334閲覧

Excel VBAでフォルダ内のエクセルファイル全てに作成者名を入力したい

velt

総合スコア0

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

1クリップ

投稿2020/11/27 14:05

編集2020/11/27 14:07

同一フォルダ内にあるエクセルファイル全てに、該当する作成者名を入力したいと考えています。
手元には1列目にファイル名、2列目に作成者名が入ったファイルがあり、こちらの内容を各ファイルに入力していきたいです。
以下のようなコードを書いたのですが、一つ目のファイルを開いた後にどのように作成者名と紐づけ、入力していくのかの所で詰まってしまいました。
良い方法があればご教示頂けると有難いです。

イメージ
ファイル1  佐藤
ファイル2  鈴木
ファイル3  小林
(以下続く)

VBA

1Sub test() 2 3 Dim path, fso, file, files 4 path = "C:\Users\test\Desktop\test/" 5 6 Set fso = CreateObject("Scripting.FileSystemObject") 7 Set files = fso.GetFolder(path).files 8 9 10 For Each file In files 11 12 13 Dim wb As Workbook 14 Set wb = Workbooks.Open(file) 15 16 'ここに何らかの処理が必要(以下の処理について知りたいです) 17 18 Next file 19 20End Sub 21

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

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

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

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

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

hatena19

2020/11/28 00:44

・「手元には1列目にファイル名」のファイル名はフルパスですか。ファイル名だけですか。 ・「同一フォルダ内にあるエクセルファイル全て」とのことですが、「手元には1列目にファイル名」にはそのファイル全てのファイル名があることは保証されているのですか。 ・「該当する作成者名を入力したい」とは、ブックの作成者プロパティを設定したいということですか。それとも特定のセルに入力したいということですか。
velt

2020/11/28 13:44

ご質問頂き、ありがとうございます。 以下、回答させて頂きます。 ・「手元には1列目にファイル名」のファイル名はフルパスですか。ファイル名だけですか。 →ファイル名だけです。 ・「同一フォルダ内にあるエクセルファイル全て」とのことですが、「手元には1列目にファイル名」にはそのファイル全てのファイル名があることは保証されているのですか。 →保証されています。 ・「該当する作成者名を入力したい」とは、ブックの作成者プロパティを設定したいということですか。それとも特定のセルに入力したいということですか。 →ブックの作成者プロパティを設定したいです。 その他、ご不明点等ございましたらご質問頂けると有難いです。
guest

回答3

0

・「手元には1列目にファイル名」のファイル名はフルパスですか。ファイル名だけですか。
→ファイル名だけです。
・「同一フォルダ内にあるエクセルファイル全て」とのことですが、「手元には1列目にファイル名」にはそのファイル全てのファイル名があることは保証されているのですか。
→保証されています。
・「該当する作成者名を入力したい」とは、ブックの作成者プロパティを設定したいということですか。それとも特定のセルに入力したいということですか。
→ブックの作成者プロパティを設定したいです。

とりあえず、下記のような感じのコードでいいでしょう。

vba

1Sub test() 2 Const path = "C:\Users\test\Desktop\test\" 'ファイルのあるフォルダー 3 4 Dim rngList As Range 5 'リストのあるセル範囲(アクティブシートのA1セルからリストの場合) 6 Set rngList = Range("A1").CurrentRegion 7 8 Dim r As Range 9 For Each r In rngList.Rows 10 With Workbooks.Open(path & r.Cells(1, 1)) 'ブックを開く 11 'ブックの「作成者」プロパティを変更 12 .BuiltinDocumentProperties("Author").Value = r.Cells(1, 2) 13 'ブックを保存して閉じる 14 .Close SaveChanges:=True 15 End With 16 Next 17 18End Sub

投稿2020/11/29 10:53

hatena19

総合スコア33790

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

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

0

VLookupを使ったらいいんじゃないでしょうか
https://www.sejuku.net/blog/29654

投稿2020/11/27 16:44

NulluoKikiura

総合スコア34

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

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

0

ファイル名と作成者のファイルは読み込んであるようなので、その後の作成者の変更は
ブックの「作成者」プロパティを一括変更する
を参考にしたらいかがでしょうか。

投稿2020/11/27 14:22

ikapy

総合スコア1167

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問