プロが教える店舗&オフィスのセキュリティ対策術

VBA 初心者です。
列コピーし、貼付け作業を繰り返したいのですが、
アプリケーション定義またはオブジェクト定義のエラーと表示がでます。

どなたか原因わかりますでしょうか?
宜しくお願い致します。

「VBA 初心者です。 列コピーし、貼付け」の質問画像

A 回答 (6件)

「Range(Columns(3),Columns(10))」という書き方が許可されていない為だと思います。


今回のように固定されているなら「Range("C:C,J:J")」とされるのが簡単だと思います。
他の場所も同様に…
    • good
    • 0

もし、どうしてもご提示のような使い方をする場合や変数を使いたい場合などは以下のユーザー定義関数を組み込んでおくと便利だと思います。



Function CoStr(CoNo As Long) As String

 CoStr = StrReverse(Mid(StrReverse(Cells(1, CoNo).Address(False, False)), 2))
 CoStr = CoStr & ":" & CoStr

End Function

使い方は「Sheets("1-1").Range(Columns(3), Columns(10)).Copy」の場合は「Sheets("1-1").Range(CoStr(3) & "," & CoStr(10)).Copy」のようにします。

なお、このユーザー定義関数に付きましては機能アップしエラー処理もするものを解説とともに私のHP( https://luckshp.web.fc2.com/ )に「列番号⇒列範囲」として近日中にアップしておきます。興味が有る場合は覗いてみて下さい。
    • good
    • 0

先日も似たような回答をしましたが。


(画像なのでコードのコピペが出来ないので簡略)

目的のシート名.Range と Columns(3)・Columns(10) において、目的のシートがアクティブな状態でないのでエラーになっているのでしょ。

例:
Dim n As Long

n = 20

With Worksheets("Sheet2")

.Range(.Columns(3), .Columns(5)).Copy .Columns(n)

End With

End Sub

このようにするとシート2がアクティブな状態でなくても、 "."が With Worksheets("Sheet2") によりシート名を省略している事になるようだと別回答がありましたね。
    • good
    • 2
この回答へのお礼

シートをそれぞれアクティブにしないといけなかったんですね!!!

稼働しました‼ありがとうございます‼

お礼日時:2019/10/19 12:03

念のため確認しておきます。


エラーしている所の意図する事は次のどちらでしょうか?
① 3列目と10列目をコピーしたい
② 3列目から10列目までをコピーしたい
    • good
    • 0

No.3です。



セルの範囲については疑問が既に出ているので別件です。

シート”商品マスタ" がこのコードにどのように関係するのか不明な感じがします。
やっているのは『同じシート内でのコピペ』ですよね?
もしかしてですが”商品マスタ”のシートからそれぞれのシートにコピペしたいのかな?って。

それとも製作途中状態での質問ですかね?
    • good
    • 0

回答への質問に対して全く返答が無いのでチンプンカンプンの事になってしまうかもしれません。

(もし回答に対して何らかの不満などあって返答したくなくても、何かしらの返答を頂かないと返って不満が有る回答が増えてしまうかもしれませんよ)

望んでいる回答は次のうちどれでしょうか?

① なぜエラーが出るか?
  ⇒ 書き方が許可されていない。
② エラーを出さないようにするにはどうしたらいいのか?
  ⇒ 何をやりたいのかを言葉で提示して下さい。
   例①「1-1」シートの3列目と10列目をどこかにコピーしたい。
   例②「1-1」シートの3~10列をどこかにコピーしたい。
   例③「商品マスタ」シートの3列目と10列目をどこかにコピーしたい。
③「商品マスタ」シートの指定列を他のシートへコピーする方法が知りたい?
  ⇒ 何をやりたいのかを言葉で提示して下さい。
   例①「商品マスタ」シートの3列目と10列目の最後から4行目までを「1-1」シートにコピーしたい。
     「商品マスタ」シートの6列目と8列目の最後から4行目までを「データ」シートにコピーしたい。
     「商品マスタ」シートの5列目と13列目の最後から4行目までを「集計」シートにコピーしたい。
④ その他
  ⇒ 何を望んでいるか?赤の他人でも判る言葉で提示して下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A