• ベストアンサー

マクロの貼付け方で御教授下さい。

エクセル2000を使用しています。 3種類(内容は似てはいますがそれぞれ違います)のマクロのデータがメモ帳にあります。 そのマクロを記憶させたいのですが、 私がマクロを貼付ける方法は、ツール-マクロ-新しいマクロの記録 マクロの保存先(I) の保存先を、個人用マクロブック、どこかのセルを1個2個クリック。 ツール-マクロ-記録終了 Alt + F11 で、Visual Basic Editor 画面を開けて、プロジェクト・エクスプローラ VBAProject(PERSONAL.XLS)というのができているはずなのでModule1 の中にマクロを上書きで貼り付け。 とういやり方です。 その場合マクロを3つまとめて貼付けて良いのでしょうか? それとも一個ずつこの作業を三回繰り返す方が良いのでしょうか? もし方法が間違っていれば御指摘下さい。 参考までに内容は下記のような感じです。 Sub abc() Dim x As Long With ActiveSheet .Columns("C").Cut 中略 .Range("A1:J1").Interior.ColorIndex = 6 End With End Sub Sub def() Dim x As Long With ActiveSheet .Columns("C").Cut 中略 .Range(.Range("A1"), .Range("A1").End(xlToRight)).Interior.ColorIndex = 6 End With End Sub Sub ghi() Dim x As Long With ActiveSheet .Columns("C").Cut 中略 .Range(.Range("A1"), .Range("A1").End(xlToRight)).Interior.ColorIndex = 6 End With End Sub

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

マクロの記録操作は不要です。 >Alt + F11 で、Visual Basic Editor 画面を開けて、 最初からこの操作でVBEを開いて、必要なモジュールにコードを貼り付けるだけで作業は終わりです。 幾つのコードでも貼り付けて問題ありません。

joy9999
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 よくわかりました。 おかげで勉強になりました。

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

その他の回答 (1)

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

エクセルを開き ファイル 開く ファイルを開くダイアロウグで ファイル名に personal.xls を入れて 開く ーー これで personal.xls のブックが開く。 VBE画面を出し VBAProject(personal.xls) の 標準モジュールをクリックして 適当なModule(X)をクリックして、その画面にコピーしたソースを貼り付けてはどうでしょう。

joy9999
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 よくわかりました。 おかげで勉強になりました。

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

関連するQ&A

  • マクロの簡素化

    下記マクロです。 Range("AE6:AE1005").Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone If Range("AD6").Value > 5 Then Range("AE6") = "*" Range("AE6").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD7").Value > 5 Then Range("AE7") = "*" Range("AE7").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD8").Value > 5 Then Range("AE8") = "*" Range("AE8").Select With Selection.Interior .ColorIndex = 3 End With Else End If 中略(セルを一個づつ指定しています) If Range("AD1004").Value > 5 Then Range("AE1004") = "*" Range("AE1004").Select With Selection.Interior .ColorIndex = 3 End With End If If Range("AD1005").Value > 5 Then Range("AE1005") = "*" Range("AE1005").Select With Selection.Interior .ColorIndex = 3 End With Else End If Range("AE3").Select 有るセルを参照しその値が5以上だったら別のセルに*マークとセルに色を付けるマクロですが、一個づつセル指定をしていますが、何とか短く出来ないでしょうか? お分かりになる方宜しくお願い致します。

  • マクロで教えてください。

    sheet1のA列にある図番を参照しsheet2のA列の機種名に適合する行全体に sheet1のB列にある色を塗りたいのですが、マクロを教えていただけますでしょうか? sheet2のBのセル色を塗るマクロはわかりました。↓です。 Sub macro1() Dim c As Range, myR As Variant With Sheets("Sheet2") For Each c In .Range("a2", .Cells(Rows.Count, "a").End(xlUp)) myR = Application.Match(c.Value, Sheets("sheet1").Columns(1), 0) If Not IsError(myR) Then c.Offset(, 1).Interior.ColorIndex = Sheets("sheet1").Cells(myR, "B").Interior.ColorIndex End If Next End With End Sub 上記マクロですとBセルのみ色が塗られてしまうので行全体を塗るマクロを教えてください。 よろしくお願い致します。

  • エクセル イベントマクロ

    マクロ初心者です。よろしくお願いします。 セル範囲(A1:F20)に何も入力されていなければ塗りつぶしされ、 何か(文字、数字などなんでも)入力されていれば、塗りつぶしがなくなる。 というマクロをあえて、条件付き書式を使わずに行いたいとやってみました。(以下) Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Range For Each a In Range("A1:F20") If a.SpecialCells(xlCellTypeVisible) Then a.Interior.ColorIndex = xlNone Else a.Interior.ColorIndex = 7 End If Next a End Sub ところが、半角数字(0以外)では動作するのですが 文字を入力するとエラーとなり「型が一致しません」と表示されます。 どう直したらよいのでしょうか? 最近マクロをやってみようと始めたので、基本的なことがわかっていないのかも。 どなたか、具体的なご指導お願いします。

  • Excelで渦巻状にセルを移動するマクロを作りたいのです

    マクロで渦身状&時計回りにアクティブセルを移動させるにはどのように 記述したらよいでしょうか。 例えば、E16を選択しているときにマクロを実行したら E16→D16→D15→D14→E14→F14→F15→F16→F17→E17→D17→C17→… と移動していく感じです。 キーボード記録マクロで[↑][↓][←][→]キーで移動してみても何も記録 されなかったので、移動→黄色に塗りつぶし、という繰り返しを記録 してみると、文末のようにはなりました。が、渦巻き状に移動という アルゴリズムがさっぱり思いつきません。 無限でなく、例えば10周くらいまわれば十分です。 最終的には、移動するごとに、踏んだセルの値を評価(1だったら赤に塗る、 のように)していきますが、まずは選択セルを基点に渦巻状にセルを移動 する方法が知りたいです。 よろしくお願いします。 Sub Macro1() With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With Range("E16").Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With Range("D16").Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With ' ■中略■ Range("C17").Select With Selection.Interior End Sub .ColorIndex = 6 .Pattern = xlSolid End With (ちなみに) エクセル上に、日本地図が碁盤目状に描かれています。 セルには、平野=1、山=2、海=3のように記述されています。 これを特定法則で塗り分けるのに利用します。

  • VBA マクロでの網掛けについて

    Sub 網掛け()   Worksheets("表").Select   With Range("A1")     .Interior.Pattern = 1     .Interior.PatternColorIndex = 2   End With End Sub これをボタンに登録し、ボタンを押すと網掛けできうようになっています。 しかしボタンをおすとかならず白で網掛けされてしまいます。 ColorIndexをどの数字にしても白です。 どうして白になってしまうのか教えてください。

  • エクセルのマクロ

    エクセル2002でマクロを記録しました。 セルD5を選択した状態で、マクロの記録を始めました。(相対参照ボタンをクリックしています) D5のセルの色を黒にして、セルD6を選択して色を白にしました。ここで記録を終了しました。 VisualBasicEditorで見ると以下のような記述がありました。 そこで教えてください。 1)どの部分が相対参照をしているという意味の記述でしょうか? 2)どの部分がD6を選択したという記述でしょうか? 3)「Range("A1").Select」はどういう意味ですか?A1のセルはクリックしていないのですが・・・。 教えてください。 記述は以下です。 With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With ActiveCell.Offset(1, 0).Range("A1").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With End Sub

  • マクロBVAに関する質問です

    Sub Macro1() ' ' Macro1 Macro ' ' Range("テーブル1[番号]").Select ActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYes End Sub といった、マクロを作ったのですがActiveSheet.Range("テーブル1[#すべて]").RemoveDuplicates Columns:=1, Header:=xlYesのところでデバックになってしまいます。 なぜデバックとなるのか? また解決策を教えて下さい。宜しくお願い致します。(マクロ超初心者)

  • マクロでのエラーについて

    エクセル2010 マクロエラーについて 以前 印刷について下記コードを提示して頂きました。 このコードが通る時と2回目の .Zoom = j で止まる時があります。 どなたか検証して頂き、何が原因なのかご教示頂けますでしょうか? 宜しくお願い致します。 Dim myRng As Range Dim i As Long Dim j As Long Dim k As Long j = 100 With ActiveSheet Set myRng = .Range("A1", .Cells(Rows.Count, "L").End(xlUp)).Resize(, 16) For i = 1 To myRng.Columns.Count If i = 11 Then .Columns(i).AutoFit End If Next i With .PageSetup .PrintArea = myRng.Address .Orientation = xlLandscape .PaperSize = xlPaperA4 .Zoom = j Do k = Application.ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(65))") If k = 1 Then Exit Do j = j - 1 .Zoom = j '”ここで実行時エラー1004” PageSetupクラスのZoomプロパティを設定できません” Loop End With .PrintOut Preview:=True .PageSetup.Zoom = 100 End With

  • マクロでコピー貼り付けやってみたいのですが。

    マクロの初心者です。Dim で宣言してやりたいと思っています。 既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。 やってみたいと思っています。 やりたいこと等について 1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。 2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか 3 最終行の取得のコードの書き方が分からない 4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。 以上のことを答えて頂けませんか。よろしくお願いします。 Sub テスト() Dim range1 As Range Set range1 = Range("E2:J1109") range1.Copy ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109") ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110") Application.CutCopyMode = False End Sub

  • マクロの中に別なマクロを組み込むには

    よろしくお願いします。 excel2003でマクロを作っています。 Sheet2のC1、D1、E1にセルを赤く塗りつぶす、赤と入力、カラーインデックスの番号を入力するというマクロを作りボタンに割り当てたいと思います。 全部で色が17色あるので、マクロを17個作らなければならないと思うのですが、なるべく簡略化したいと思います。 そこで下記の「赤」というマクロの中に「色」というマクロを取り込みたいのですが、うまくできませんでした。 どうかマクロの中にマクロを取り込む方法を教えてください。 もし下記のマクロがもっとスマートに出来るようでしたら、それも教えていただけると嬉しいです。 VBAは初心者ですがよろしくお願いします。 Sub 赤() irobango = 3 ironamae = "赤" End Sub Sub 色() Worksheets("Sheet2").Range("C1").Select With Selection.Interior .ColorIndex = irobango .Pattern = xlSolid End With Worksheets("Sheet2").Range("D1").Value = ironamae Worksheets("Sheet2").Range("E1").Value = irobango End Sub

このQ&Aのポイント
  • MFC-J6983CDWでスキャンができなくなってしまいました。質問記事をご覧いただき、お困りの状況や試したことを教えてください。
  • MFC-J6983CDWのスキャンができないトラブルについてお困りの方へ。解決策や試したことをまとめました。
  • MFC-J6983CDWでスキャンができない問題についての質問です。お困りの状況や試したことを教えてください。
回答を見る

専門家に質問してみよう