Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7092 / 13644 ツリー ←次へ | 前へ→

【41221】複数あるbook(数シート)の特定セルの内容変更 初心者 06/8/2(水) 12:09 質問[未読]
【41222】Re:複数あるbook(数シート)の特定セルの... Statis 06/8/2(水) 12:26 発言[未読]
【41224】Re:複数あるbook(数シート)の特定セルの... 初心者 06/8/2(水) 12:56 発言[未読]
【41228】Re:複数あるbook(数シート)の特定セルの... へっぽこ 06/8/2(水) 15:05 発言[未読]
【41263】Re:複数あるbook(数シート)の特定セルの... 初心者 06/8/3(木) 13:23 お礼[未読]

【41221】複数あるbook(数シート)の特定セルの内...
質問  初心者  - 06/8/2(水) 12:09 -

引用なし
パスワード
   はじめまして。
数百個あるbook(数シートあります)の特定のセルの内容の数式を
別の数式に置き換えたいのですが、どのように記述したら出来るのでしょうか?
たとえば、book1のシート1のA1というセルに'A1+1',B1に'B1+1'と記述してあった場合にA1というセルは'A1+2'にB1は'B1+2'とSheet1〜Sheet3までいっきにあるフォルダ内の数百個あるExcelのbookを置換したいのですが、宜しくお願い致します。

【41222】Re:複数あるbook(数シート)の特定セル...
発言  Statis  - 06/8/2(水) 12:26 -

引用なし
パスワード
   こんにちは
セルの数式を変更するにはファイルを開いて各シートごと
処理するしか無いと思われます。
複数のファイルを開いて処理する方法はDir関数で検索するといろいろあると
思います。

>たとえば、book1のシート1のA1というセルに'A1+1',B1に'B1+1'と記述してあった>場合に
上記数式で無い場合もあるのでしょうか?
たとえばでなく、実際のを記載したほうがスムーズに行くと思われますが?

【41224】Re:複数あるbook(数シート)の特定セル...
発言  初心者  - 06/8/2(水) 12:56 -

引用なし
パスワード
   ▼Statis さんへ
内容の記述不足ですみません。
>上記数式で無い場合もあるのでしょうか?
ありません。
>たとえばでなく、実際のを記載したほうがスムーズに行くと思われますが?
仕事上実際の内容が書けず、例えばの様な例になってしまいますが、参考になる例を教えて頂けないでしょうか?

【41228】Re:複数あるbook(数シート)の特定セル...
発言  へっぽこ  - 06/8/2(水) 15:05 -

引用なし
パスワード
   こんにちは。

簡単なサンプルですが研究してみてください。

'------------------------------------------------------------------------------
'同じフォルダに存在するブックのA1セルを書き換えるので注意して実行してください。
'------------------------------------------------------------------------------
Sub サンプル()
  Dim ファイル名 As String
  Dim 各シート As Worksheet
  
  If ThisWorkbook.Path = "" Then
    MsgBox "いったん保存してください。"
    Exit Sub
  End If
  '1.マクロを書いたブックと同じフォルダの中から(ThisWorkbook.Path)
  ' 「*.xls」という名前のファイル名を取得する。
  ' (ここでは最初の1ファイル分の名前を受け取る)
  ファイル名 = Dir(ThisWorkbook.Path & "\*.xls")
  '2.1や8でファイル名が取得できなくなるまでDo〜Loopを繰り返す。
  Do Until ファイル名 = ""
    '3.取得したファイル名がマクロを書いたブックの名前(ThisWorkbook.Name)
    ' と違うならばIf〜End If内を処理する。
    ' (マクロを書いたブックの名前でも処理するとオープンするときに
    '  「既に開いてます。2重に開くと…」とメッセージが出るのでそれを避けるため)
    If ファイル名 <> ThisWorkbook.Name Then
      '4.取得したファイル名のブックを開く。
      Workbooks.Open ThisWorkbook.Path & "\" & ファイル名
      '5.4で開いたブックの全ワークシートを一つ一つ処理する。
      For Each 各シート In ActiveWorkbook.Worksheets
        With 各シート
          '6.A1セルが空っぽなら"A"と設定し、何か入っていれば後ろに"B"を付ける。
          If .Range("A1").Value = "" Then
            .Range("A1").Value = "A"
          Else
            .Range("A1").Value = .Range("A1").Value & "B"
          End If
        End With
      Next
      '6.4で開いたブックを保存する。
      ActiveWorkbook.Save
      '7.4で開いたブックを閉じる。
      ActiveWorkbook.Close
    End If
    '8.次のファイル名を取得する。
    '(1で指定した条件「*.xls」を満たすファイル名の2番目以降を取得)
    ファイル名 = Dir()
  Loop
  MsgBox "終了しました。"
End Sub

【41263】Re:複数あるbook(数シート)の特定セル...
お礼  初心者  - 06/8/3(木) 13:23 -

引用なし
パスワード
   へっぽこ さんへ
解決致しました。
説明まで記述していただいてありがとうございます。

7092 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free