• ベストアンサー

オブジェクト変数またはwithブロック変数が設定されてません

またまた おねがいします。 x に特定セルを入れてあります。 コピーし、形式を選択して貼り付けで 値だけ、行列を入れかえる・・・と考え、 下記の記述になりました。 しかし、実行してみると エラーで 「オブジェクト変数またはwithブロック変数が設定されてません。」 と、でます。 x.PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True アドバイスをお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

この質問には質問に載せた以前の部分を載せる必要があるのじゃないかと思う。 また下記後半に貼り付け先に疑問を持ったので記してみる。杞憂と思うなら無視していただいて結構。 (私は、この問題をVBAでやるのは結構難しいなと思ったので) ーー それは(1)コピーする範囲指定の問題。 私は Sub test01() Set x = Application.InputBox("範囲", Type:=8) Set y = Application.InputBox("貼り付け先", Type:=8) x.Copy If Intersect(x, y) Is Nothing Then y.Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Else MsgBox " 貼り付け先訂正" End If End Sub としてみた。これで1セル以上は絶対に指定されるので、「コピー元がなし」は、なくなると思う。 ーー (2)トランスポーズして張り付ける先(極端に言えば左上隅セル) だが、コピー元との位置関係で適当でないとエラーが出るようだ。 多分もとのコピー先の範囲と、行列を反転した範囲が共通部分を持つ場合にエラーが出るのではないかと思う。私はとりあえずINTERSECTで上記程度で、ごまかしたが、行列を反転した範囲を割り出す必要があるのかなと思うがややこしそうなので、とりあえずこのままにしますが、この点どうでしょう?

K-19New
質問者

お礼

ありがとうございます。 改めて質問をかきます。 お願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#220216
noname#220216
回答No.2

xがNothingの場合は処理しないという仕様ならば If IsNothing(x) = False Then x.PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True End If としておくとエラーは回避できます。 しかし、xには必ず特定のセルが入るという仕様でしたら、 xに代入する時点で正常な値が取得できていないと思うので x = と代入している右辺のセットに間違いが無いか確認してみてください。

全文を見る
すると、全ての回答が全文表示されます。
noname#220216
noname#220216
回答No.1

この行にエラーが出ているのでしたら、 x に正常にセルがセットされていない可能性はないでしょうか? デバッグ中にxの値をローカルウィンドウ等で確認してみては 如何でしょうか?

K-19New
質問者

お礼

ありがとうございました。 ななんと 「x は Noting 」でした。 どうしたらいいいのかな?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 形式を選択して貼り付け

    Range("a" + z + 1).PasteSpecial_ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True 上記を入力し、実行すると「この操作には同じサイズの結合が必要です」とエラーが出ます。本を見て同じように作成したので、何処が間違ってるのか、分かりません。教えて下さい。

  • マクロ

    値のみを貼り付けることが多いので、形式を選択して値のみを、貼り付けるを自動マクロで記述しましたが、エラーが出てしまいます。 下記が記述しましたマクロです。 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False どこが間違っているのか判りません。 ご指導のほどよろしくお願いいたします。

  • VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗

    マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。 マクロの内容は、任意の範囲をコピー、新規book追加し、 新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。 いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。 下記にマクロ内容全部記載します。 よろしくお願いします。 ********************************************************* ********************************************************* Sub 日報別ファイルに保存したい1() Worksheets("日報").Range("A3:AF36").Copy With Workbooks.Add Cells.Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells.Select Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("A1").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ApplicationDisplayAlerts = True '同名FILEが存在する場合' ActiveWorkbook.SaveAs Filename:= _ "c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _ , FileFormat:=xlNormal .Close file End With End Sub

  • エクセルVBAで値の貼り付けができない

    色々調べたのですが、出来ない理由が見つけられません。よろしくお願い致します。 計算式の入っているセルをマクロで貼り付けしようと思っているのですが、 貼り付ける際、値の貼り付けにしたいのです。 下記の通りすると計算式のまま貼り付けされてしまいます。 どなたか教えて下さい。お願い致します。 Selection.Copy wsKei.Select wsKei.Range("A" & intLinekeistr & ":A" & intLinekei - 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False エクセルは、2007 PCはvistaです。

  • 複数シートの一定範囲を、他シートの表に貼り付けたい

    Win7 Excel2007 でマクロ作成中の初心者です。 複数シートの一定の範囲を、総括表シートの中にある表に貼り付けたいです。 いろいろサイト探しましたが方法がわかりません。どうかご教示おねがいします。 Sub 総括表シートに貼り付け() ' Dim list, sheetName Application.ScreenUpdating = False Const EXCEPT_NAME = "総括表 保管用" For Each sheetName In ActiveWorkbook.Worksheets If InStr(EXCEPT_NAME, sheetName.Name) = 0 Then Sheets(sheetName.Name).Activate ActiveSheet.Unprotect   複貼り付け用部品 ActiveSheet.Protect End If Next End Sub -------------------------------------------- Sub 複貼り付け用部品() ’自動記録のコード 'すべてのシートの Range("AW7:AW34")の範囲を総括表シートに貼り付け '貼り付け位置は、総括表のシートのD列からに順番に貼り付け ActiveSheet.Unprotect Range("AW7:AW34").Select '最初のシート Selection.Copy Range("D4:D31").Select '総括表シートのD列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '2番目のシート Application.CutCopyMode = False Selection.Copy Range("E4:E31").Select '総括表シートのE列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '3番目のシート Application.CutCopyMode = False Selection.Copy Range("F4:F31").Select '総括表シートのF列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AW7:AW34").Select '4番目のシート Application.CutCopyMode = False Selection.Copy Range("G4:G31").Select '総括表シートのG列に貼り付け Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '以下続く End Sub

  • 「罫線を除く全ての貼り付け」をマクロ化したい

    「罫線を除く全ての貼り付け」をマクロ化したいと思いマクロの記録をすると、 Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False のようなマクロができあがるのですが、これを実行すると RangeクラスのPasteSpecialメソッドが失敗しましたと出て実行できません。 どうも形式を選択して貼り付けが全てそのようになるようです。 原因と解決方法がわかる方いらっしゃったらお願いします。

  • Excelでマクロを繰り返したい。

    Excelでマクロを記録したら以下のようになりました このマクロを以下の条件で繰り返したいのですが。 Sub Macro1() '------------- '----------------------- ' Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=5*", Operator:=xlAnd, _ Criteria2:="<>5@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=6*", Operator:=xlAnd, _ Criteria2:="<>6@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=7*", Operator:=xlAnd, _ Criteria2:="<>7@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=8*", Operator:=xlAnd, _ Criteria2:="<>8@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 条件= Field:は4~35位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • 指定セルをコピー

    A2~A5,D2~D5,G2~G5をコピーしJ~P列2~5行に値を貼付け続いて9~13行、16~20行もJ~P列に貼り付けたいのですが7~8,14~15行にはセル結合されているところもあります。VBAで下記コードを入力しましたがあまりにデータが多く何か良い方法VBAコードはありますか。(For~Nextなど使用すれば良いのでしょうか) 環境はoffice2013です。 Range("A2:A6").Select Selection.Copy Range("J2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("D2:D6").Select Selection.Copy Range("M2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False  Application.CutCopyMode = False

  • EXCEL VBAで複数行のコピー(バックグランド)

    EXCELのVBAで質問します。 複数行をコピーしてPasteを行う方法がわかりません。 フォアグランドでは正しく実行できるのですが、バックグランドで実行した場合は、1行しかPasteできません。 お分かりの方いらっしゃれば教えてください。 コードは以下のとおりです。 Sheets(\"DATA\").Select Range(\"A3:W26\").Select Selection.Copy Range(\"A4\").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True 宜しくお願いします。

  • ExcelVBAで選択範囲のみ新規ブックにコピペ(EXCEL2007)

    ExcelVBAで選択範囲のみ新規ブックにコピペ(EXCEL2007) EXCEL2007にて下記VBAプログラムを実行すると、 ActiveSheet.PasteSpecialの部分で 「アプリケーション定義またはオブジェクト定義のエラーです。」 とエラーメッセージがでます。 なぜなのでしょうか? お願いいたします。 '選択範囲コピー Range("AllData").Copy '新規ブックの追加 Set WB = Workbooks.add WB.Activate ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

専門家に質問してみよう