[[20221128181143]] 『複数のブックに一括で値入力するマクロを教えてく』(ぷーん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『複数のブックに一括で値入力するマクロを教えてください』(ぷーん)

A列にパス(\\....xlsx)が複数記載されているシートがあり、ここに記載されているすべてのExcelに「該当なし」と値入力をしたいです。(値入力したい場所は各シート1,A1)

質問に不備があったら申し訳ございません。(その際は補足させていただきます)

有識者の方、ご教示お願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


>>有識者の方
では御座いませんで、回し好きのクルクルパーですが。。。^^;
いろいろ方法は有るとは思いますが。一案で
1.A列にパス(\\....xlsx)が複数記載されているシート
  が有るブックにマクロを書く事とする
2.繰り返し処理で順次パスを読み込む
3.2.を使いブックを開く
4.所定のセルに所定の値を書き込む
5.開いたブックを保存して閉じます。
6.2.〜5.を最後まで繰り返す
おしまい。みたいな感じでも
m(__)m

(隠居Z) 2022/11/28(月) 20:40:38


こうすれば

https://forest.watch.impress.co.jp/docs/serial/exceltips/1194900.html
(あべこべ) 2022/11/28(月) 20:45:46


隠居zさん
ありがとうございます。
仕組みは理解できました。
しかし私全くの初心者で、仕組みは分かったところでコードの書き方が分からず...
勉強するべきことだと思いますが、調べても分からなかったので、
ヒントになるようなコードなどを教えていただけると幸いです。
(ぷーん) 2022/11/28(月) 21:10:07

何をどうやって調べたのでしょうか?
教えてください。
(調べたで) 2022/11/28(月) 22:18:06

こんばんわ ^^
読込[パス]のシート名
書込みのシート名、若しくは、必ず、左から何番目のシートとか
を、差支えなければ教えて下さい。テキトーで、後からそちらで
ご修正されるのであれば、かまいません。
今夜は、眠いので。。。その、また後日、^^;
他の回答者様のアドバイスも合わせて、お待ちくださいませ。
でわでわ
m(_ _)m
(隠居Z) 2022/11/28(月) 22:39:40

 こんな感じかな?

 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


複数のブックに一括で値入力するマクロを教えてください
質問者:40YU
https://oshiete.goo.ne.jp/qa/13248498.html
(zzz) 2022/11/29(火) 08:29:06

半平太さん

ありがとうございます。

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.