マクロ
Sub データコピペ()
Dim expressionRng, destinationRng
Dim n
'コピー元のファイルを開く
Workbooks.Open ActiveWorkbook.Path & "\" & "FDデータ.xlsx"
Set expressionRng = Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:OZ12")
Set destinationRng = ThisWorkbook.Sheets("FDデータ").Range("A1:B2")
For n = 1 To expressionRng.Rows.Count
destinationRng(n, 1).RowHeight = expressionRng(n, 1).RowHeight
Next
For n = 1 To expressionRng.Columns.Count
destinationRng(1, n).ColumnWidth = expressionRng(1, n).ColumnWidth
Next
expressionRng.Copy destinationRng
Workbooks("FDデータ.xlsx").Close
End Sub
が有ります。
このマクロはファイル名が「FDデータ.xlsx」の指定セル値を作業ブックの指定シートの指定セル値にコピー&ペースト出来ます。
しかし、希にコピー元ファイルの「FDデータ.xlsx」のセル値が
ペースト先のセルに上手くコピー&ペーストが出来ない場合が有ります。
コピー元からペースト先に確実にコピー&ペーストが出来る方法があれば教えてください。
もし、コピー範囲に問題が有る場合はコピー範囲は「A1:OZ12」となっておりますが、行は「1~12」までで
列は「OZ」では無く、列の指定無しでも構いません。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
このマクロでコピー元のファイル「FDデータ.xlsx」が開かれている間、他のユーザーが同じファイルにアクセスして変更する可能性があります。
これがコピー&ペーストが失敗する原因になる可能性があります。この問題を解決するために、コピー元のファイル「FDデータ.xlsx」を開かずにデータを取得する方法があります。次のように変更することができます。
Sub データコピペ()
Dim expressionRng As Range, destinationRng As Range
Dim expressionWb As Workbook
Dim n
'コピー元のファイルを開かずにデータを取得する
Set expressionWb = Workbooks.Open(Filename:=ActiveWorkbook.Path & "" & "FDデータ.xlsx", ReadOnly:=True)
Set expressionRng = expressionWb.Sheets("Sheet1").Range("A1:OZ12")
Set destinationRng = ThisWorkbook.Sheets("FDデータ").Range("A1:B2")
'行の高さをコピーする
For n = 1 To expressionRng.Rows.Count
destinationRng(n, 1).RowHeight = expressionRng(n, 1).RowHeight
Next
'列の幅をコピーする
For n = 1 To expressionRng.Columns.Count
destinationRng(1, n).ColumnWidth = expressionRng(1, n).ColumnWidth
Next
'データをコピーする
expressionRng.Copy destinationRng
'コピー元のファイルを閉じる
expressionWb.Close SaveChanges:=False
End Sub
このバージョンのマクロでは、コピー元のファイル「FDデータ.xlsx」を読み取り専用で開き、データを直接コピーしています。ファイルが開かれている時間が短くなり、他のユーザーがファイルにアクセスして変更する可能性が低くなります。
また、ファイルを閉じるときにSaveChanges:=Falseとしているため、コピー元のファイルが変更されることはありません。必要に応じて、このオプションをTrueに変更して、変更が必要な場合にはコピー元のファイルが保存されるようにすることもできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
バッチファイル 別ファイルにリ...
-
frxファイルの役目
-
Vba初心者です。下記のコード助...
-
アクセス クエリを別のファイ...
-
[エクセル]コピーするとオブジ...
-
ファイルサーバ上のファイルが...
-
エクセルVBAで開いているファイ...
-
vbsでExcelのシートをコピーす...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
エクセルのハイパーリンクがコ...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
エクセルのマクロについて教え...
-
サーバへファイルコピーについて
-
ExeclVBAユーザーフォームから...
-
パワポでスライドをコピーでき...
-
マインクラフトPCをプレイしよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
現在のブックを閉じないで、マ...
-
エクセルのマクロについて教え...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
エクセルVBAで開いているファイ...
-
ファイルサーバ上のファイルが...
-
エクセル2010、図が大きすぎま...
-
[エクセル]コピーするとオブジ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
Vba初心者です。下記のコード助...
-
バッチファイル 別ファイルにリ...
-
同じファイル名 上書きしないフ...
-
Gitについて質問。 クローンし...
-
vbsでExcelのシートをコピーす...
-
マインクラフトPCをプレイしよ...
-
xcopyでのバッチコピー方法でコ...
-
ファイルをコピーできない
おすすめ情報
回答ありがとうございます。
貴者の指示通りにマクロコードを設定しましたが
Set expressionWb = Workbooks.Open(Filename:=ActiveWorkbook.Path & "" & "FDデータ.xlsx", ReadOnly:=True)
のコードが黄色く成りエラーが出て
マクロが実行されませんでした。
解決方法をお願いいたします。