[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数のブックに一括で値入力するマクロを教えてください』(ぷーん)
A列にパス(\\....xlsx)が複数記載されているシートがあり、ここに記載されているすべてのExcelに「該当なし」と値入力をしたいです。(値入力したい場所は各シート1,A1)
質問に不備があったら申し訳ございません。(その際は補足させていただきます)
有識者の方、ご教示お願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
(隠居Z) 2022/11/28(月) 20:40:38
https://forest.watch.impress.co.jp/docs/serial/exceltips/1194900.html
(あべこべ) 2022/11/28(月) 20:45:46
こんな感じかな?
Sub Sample() Dim aCell As Range Dim msg As String
For Each aCell In ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion.Columns("A").Cells If Not Dir(aCell) = "" Then With Workbooks.Open(aCell) .Worksheets("Sheet1").Range("A1") = "該当なし" .Close True End With Else msg = msg & aCell & Chr(10) End If Next
If msg <> "" Then msg = "不存在パス" & Chr(10) & msg Else msg = "完了" End If
MsgBox msg End Sub
(半平太) 2022/11/28(月) 22:49:29
ありがとうございます。
If Not Dir(aCell) = "" Then
のところでエラー'13 型が一致しません。と出てしまいます...
(ぷーん) 2022/11/29(火) 15:05:45
ちなみにやりたいことは同じで、パスの指定をA30以降にしたい場合はどうなりますか?
A29より上にもパスが入っていますが、A30以下のパスに"該当なし"を付与したいですが。
(ぷーん) 2022/11/29(火) 15:17:47
> Dim aCell As Range > Dim msg As String > > For Each aCell In ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion.Columns("A").Cells
↓一部変更 Dim aCell As Range ’不変 Dim msg As String ’不変 Dim r As Range
With ThisWorkbook.ActiveSheet Set r = .Range("A30", .Cells(.Rows.Count, "A").End(xlUp)) End With
For Each aCell In r
(半平太) 2022/11/29(火) 15:30:38
ありがとうございます。理想通りの処理ができました。
仕様の変更がある場合は、おこがましいですがまた相談させていただきます。
(ぷーん) 2022/11/30(水) 14:57:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.