• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010 VLOOKUP 範囲の変更)

Excel2010 VLOOKUP範囲変更の方法と外付けHDDのフォルダ名が範囲になる理由

このQ&Aのポイント
  • Excel2010を使い慣れていない方がVLOOKUPの範囲を変更する方法について質問されています。
  • 回答として、置換を使用して範囲の変更を行う方法が提案されていますが、ファイルの確認が必要なため実行できない状況です。
  • また、外付けHDDのフォルダ名が範囲になる理由についても質問されています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1
seto7074
質問者

お礼

回答ありがとうございます。 しかし、解決とは至りませんでした。 せめて範囲の変更はできなくても、バックアップデータを元の範囲名で戻ったらいいのですが・・・・

その他の回答 (1)

回答No.2

必ずテスト環境で確認してからやってください。 マクロブックは同じフォルダに入れる。その階層にある「.xls*」だけ処理します。 UsedRangeでうまく全体カバーできるのか、よく判りません。 Option Explicit Sub ReplaceLinkPath() Const xDefaultPath = "D:\tmp" Const xFileSelector = "\*.xls*" Const xBefore = "F:\ドキュメント241102\Excel\" Const xAfter = "D:\ドキュメント\Excel\" 'Const xBefore = "=IF(A2" 'Const xAfter = "=IF($A2" Dim xShell As Variant Dim xFolderPath As Variant Dim xFileName As String Dim xNoData As Boolean Dim xNoChange As Boolean Dim xSheet As Worksheet Dim xCell As Range Dim xLast As Long Dim xRow As Long Dim kk As Long Dim nn As Long Application.ScreenUpdating = False Application.DisplayAlerts = False xNoData = True Set xShell = CreateObject("Shell.Application") Set xFolderPath = xShell.BrowseForFolder(&O0, "データ(ブック)が存在するフォルダを選択, Please!!", &H1 + &H10, xDefaultPath) If xFolderPath Is Nothing Then Exit Sub xFileName = Dir(xFolderPath.Items.Item.Path & xFileSelector, vbNormal) Do Until xFileName = Empty xNoData = False Debug.Print xFileName Workbooks.Open xFolderPath.Items.Item.Path & "\" & xFileName xNoChange = True For Each xSheet In Worksheets kk = 0 For Each xCell In xSheet.UsedRange kk = kk + 1 If (InStr(xCell.Formula, xBefore) > 0) Then Debug.Print xCell.Formula xCell.Formula = Replace(xCell.Formula, xBefore, xAfter) Debug.Print xCell.Formula xNoChange = False End If Next xCell Debug.Print xSheet.Name, kk Next xSheet Application.DisplayAlerts = False If (xNoChange) Then Workbooks(xFileName).Close False Else Workbooks(xFileName).Close True End If Application.DisplayAlerts = True xFileName = Dir() Loop If (xNoData) Then MsgBox ("No Data Found!!") End If Application.CutCopyMode = True Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub

seto7074
質問者

お礼

回答ありがとうございます。 ただ、あまりマクロが詳しくないのとエクセル2003で作成したマクロをエクセル2010で保存したらファイルの種類を間違えて消したことがトラウマになっています。 マクロ知識のレベル上がったら使わせていただきます。 エクセルデータを戻しかたは、エクセル2010で画面に出してから本体(D:)に保存しましたが、後から気付いたのですが外付けHDD(F:)からコピペで本体(D:)へ戻すと保存したままの範囲だったのです。 エクセル2003ではこのようなことはなかったと思います。これはエクセル2010の仕様か設定でしょうか。