• ベストアンサー

Excelのマクロ(VBA)について教えてください。

このようなマクロをつくりたいのですがうまく作れません。 セルをコピーした後、貼り付け先のセルを選択して、 <ここからがマクロ> 形式を選択して貼り付け→罫線を除くすべて <マクロ終了> 他の貼り付け方法はうまくできるのですが、「罫線を除くすべて」だけができません。 参考までにこれが作られたVBAです。 Sub Macro1() Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End Sub 以上です。 どなたかアドバイスよろしくお願いします。

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

  • ベストアンサー
回答No.2

私はExcel2003を使っていますが、マクロの記録をすると Sub Macro1() Selection.PasteSpecial   Paste:=xlPasteAllExceptBorders, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub と記録されました。 ちなみにどちらのマクロでも2003では「罫線なし」の貼り付けが実行されました。従ってExcel2000のバグだと思われます。 ただし、プログラムの実行のバグではなく、マクロ記録のバグのようですので、試しにマクロ文の中身を手で修正して xlPasteAllExceptBorders にしてみたらいかがでしょうか。

lovekouhei
質問者

お礼

ご回答ありがとうございます。 tamagawa49さんの言う通りに、マクロ文を変更したら、できました! 大変助かりました。ありがとうございましたm( )m

その他の回答 (1)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

僕も同じエラーが出ました。バグみたいです。 全て貼り付けた後、罫線を消す(または付ける)事にしたらどうでしょうか。 頑張ってくださいヽ(^。^)ノ

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;415379&Product=xlw2kINT
lovekouhei
質問者

お礼

ご回答ありがとうございます。 バグなんですね。ちょっと不便ですが、snoopy64さんのおっしゃる通りにやってみたいと思います。

関連するQ&A

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

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

  • エクセルのマクロ 選択したセルを指定した範囲へ値貼

    お世話になります。 自動記録したものをどのように修正したら、実行時に選択しているセルの値を、3行下、1つ左のセルから8行目までに貼り付けることができるよう書き変えられますでしょうか。 初心者で何に手を付けて良いのか分からず。どなたかご教示いただけませんでしょうか。どうぞよろしくお願い致します。 Sub 選択したセルを指定した範囲へ値貼り付け() ' ' Macro1 Macro ' ' Range("I9").Select Selection.Copy Range("H12:H19").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • Excelで複数のマクロを一本化する方法

    Macro5とMacro6を組み合わせて下記のような処理をさせたいのですが方法がわかりません。 お知恵をお貸しください。 1 日付を確認する 2 Macro6でコピー 3 日付にあわせてMacro5で貼り付け   今日が1日ならC14から貼り付け   2日ならC25から貼り付け   3日ならC36から貼り付け    ・      ・    ・   31日ならc344から貼り付け 作成したマクロ ' Macro5 Macro ' マクロ記録日 : 2007/4/25 ユーザー名 : ' ' Keyboard Shortcut: Ctrl+r ' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub Sub Macro6() ' Macro6 Macro ' マクロ記録日 : 2007/4/25 ユーザー名 : ' ' Keyboard Shortcut: Ctrl+q ' Range("C2:AD12").Select Selection.Copy End Sub

  • 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位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • エクセル コピー ペースト 形式 すべて  マクロ

    エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。 Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。 数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。 なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) どうか、よろしくお願いします。

  • マクロ

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

  • 値の貼り付けマクロが出来なくなりました。

    http://kokodane.com/macro17.htm 頻繁に、形式を選択して貼り付けで「値の貼り付け」を行うため、 上記のサイトを参考にしてマクロを作成しました。 コードは Sub 値の貼り付け() ' Keyboard Shortcut: Ctrl+t '   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _     SkipBlanks :=False, Transpose:=False 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です。

  • マクロについて教えてください

    マクロの超初心者です。 数式を入力しているのではなく、配付物をエクセルで作成しているのですが、同じもの(氏名や項目は違いますが)を100枚ほど作成しているのでマクロを・・・と思ったのですがやり方が全く分かりません。 sheet1からsheet2に下記のようにデータを写したいのですが、やり方を教えてください。 ●氏名が入力されています sheet1(A9) → sheet2(C2) sheet1(E9) → sheet2(C5) sheet1(I9) → sheet2(C8) ●項目1 sheet1(A8) → sheet2(E3) sheet1(E8) → sheet2(E6) sheet1(I8) → sheet2(E9) ●項目2 sheet1(A18~D18の結合セル) → sheet2(E2) sheet1(E18~H18の結合セル) → sheet2(E5) sheet1(I18~L18の結合セル) → sheet2(E8) と反映させたいのですが、250行あるのですが、 簡単にマクロで出来ないでしょうか?? ちなみに↓コレが上記の内容で作ってみたものです。 わかりずらい質問でスイマセン。 Range("A9").Select Selection.Copy Sheets("sheet2").Select Range("C2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E3").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E6").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E9").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A18:D18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E18:H18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I18:L18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub

専門家に質問してみよう