• ベストアンサー

エクセルVBEにて

エクセルのマクロの自動記録で、間違った操作をしてしまいVBEの記述を見ると Collate:=True ActiveCell.FormulaR1C1="TEL123-456-7890"というようになっているのですが、これは、どのような指示を表しているのでしょうか? この番号が、ランダムな位置、頻度で勝手に現れるようなのですが・・・・ どなたかよろしくお願いします。

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

  • ベストアンサー
  • nota
  • ベストアンサー率50% (4/8)
回答No.1

Collate:=True 部単位で印刷する。 ファイルメニューの[印刷]にある、「部単位で印刷」に チェックを入れた状態 ActiveCell.FormulaR1C1="TEL123-456-7890" 選択したセルの数式バーに TEL123-456-7890 を入力する

fisherman2
質問者

お礼

ありがとうございます。 やはり、納得いきました。 やたら、数字が出てきて困ってたもので。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 2行目に関しては、VBAのヘルプで「ActiveCell」、「FormulaR1C1」で検索すれば載っています。 要は、アクティブなセルに値を設定しているわけです。 1行目ですが、 「Collate:=」 という書式は、何かの関数やメソッドの引数を表しており、これだけでは元の関数やメソッドが何かはわかりません。 この行の前、数行分を見れば分かるかも知れません。

fisherman2
質問者

お礼

ありがとうございます。 勉強になりました。

  • AQUALINE
  • ベストアンサー率33% (18/53)
回答No.2

Collate:=True これは印刷の方法の指定だったような・・・。 ActiveCell.FormulaR1C1="TEL123-456-7890" 選択したセルにTEL123-456-7890と入力 のはずです。

fisherman2
質問者

お礼

ありがとうございます。 なんで、そうなったのか分かりませんが・・・・

関連するQ&A

  • エクセルマクロの記述について

    マクロの記述で、 Range(”G15”).Select ActiveCell.FormulaR1C1=”=シート名!R[-8]C[5]” というのは、どのような操作を表しているのでしょうか? どなたか教えて下さい。 よろしくお願いします。

  • エクセルのVBAで自動的にVBE画面を出したい。

    エクセルのVBAで、或るブックを開くと自動的にVBE画面を出したいのですが、何か方法は有りますか? マクロの記録で試してみたり、ネット検索したりしてみましたが、分かりません。よろしくお願いします。

  • エクセルのマクロでフリガナをつけるには

    初歩的なことだと推測しますが、一つのセルに対してメニュー[書式]-[ふりがな]-[編集]でふりがなをつけられるのですが、一度にひとつの列の沢山の漢字の読みを追加するにはどうしたらいいでしょうか。 「新しいマクロの記録」でマクロに操作を記録しても結果が表示されるだけで繰り返し処理に応用できません。 下記の例 ActiveCell.FormulaR1C1 = "・・・" ActiveCell.Characters(1, 3).PhoneticCharacters = "・・・" ActiveCell.Offset(1, 0).Range("A1").Select

  • Excel VBAで表組みしたらデバック発生

    Excel VBAの初心者です。Windows Vistaで Excel2007を使っています。 表をマクロの実行で作成したいと思っています。 何もないエクセルブックより 「開発」→「マクロの記録」→「相対参照」 →「表の作成」→「記録終了」→「相対参照で記録の解除」 →「エクセルマクロ有効ブックで保存」 ところがこのマクロ記録が入ったブックを再度立ち上げ、 表をオールクリアにし、マクロボタンより表作成を実行 させようとすると、次のエラーメッセージがでました。 『実行時エラー'9' インデックスが有効範囲にありません。』 デバックからModule1をみると以下の記述となっていました。 Sub 表組み() ' ' 表組み Macro ' ' ActiveCell.Range("A1:E5").Select Selection.Copy Windows("Book1").Activate ActiveSheet.Paste ActiveCell.Columns("A:A").EntireColumn.Select ActiveCell.Rows("1:1").EntireRow.RowHeight = 11.25 ActiveCell.Rows("1:5").EntireRow.Select Selection.RowHeight = 21.75 ActiveCell.Columns("A:A").EntireColumn.ColumnWidth = 14.88 ActiveCell.Offset(0, 4).Range("A1").Select Application.CutCopyMode = False With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveCell.Offset(1, -3).Range("A1:D4").Select Selection.NumberFormatLocal = "#,##0_ " ActiveCell.Select ActiveCell.FormulaR1C1 = "78000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "102000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "9800" ActiveCell.Offset(-2, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "65000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "204000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "500" ActiveCell.Offset(-2, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "86000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "151000" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "10200" ActiveCell.Offset(-2, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" ActiveCell.Offset(0, -3).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" ActiveCell.Offset(-4, -2).Range("A1:D1").Select Selection.AutoFilter End Sub 上から9行目(?)のWindows("Book1").Activateに 黄色い矢印が示され、また行全体が黄色く四角に 覆われていました。 おそらくこの記述に問題があると思いますが、 どんな記述に変えたらいいのか分かりません。 Excel VBAにお詳しい方ご教示願います。 なお、マクロで作成したい図を添付いたします。 参考にしていただければ幸いです。

  • エクセルのマクロの自動記録で、セルに式を入力すると・・・・

    1.マクロの自動記録で、セルに式を入力すると、 仮にセルA1に =(D1+E1)/F1 と入れると、 ActiveCell.FormulaR1C1 = "=(RC[3]+RC[4])/RC[5]" というようにR1C1形式になってしまいます。 他の場合は通常のA1とかE4とかの形式で記録されるのにどうしてでしょうか? 2.これを ActiveCell.Formula = "=(D1+E1)/F1" のような形式で記録させる方法はないのでしょうか?

  • Excelマクロの書き方の質問!

    マクロの勉強を始めたばかりの初心者です。 例題を解いていたのですが、一度でうまくいきませんでした。 誰か原因がわかる方がいらしたら教えていただけないでしょうか。 ' Call Macro4 ActiveCell.FormulaR1C1 = "月度" とすぐ上段にMacro4を挿入したら実行できず           ↓ ' Call Macro4 ' ActiveCell.FormulaR1C1 = "月度" と 「'」←この記号の前にMacro4を挿入したら実行できました。 「'」との位置関係がポイントということなのでしょうか?

  • Excelで連続印刷をするマクロ

    Excelでデータベース的な使い方をしています。 「データ」シートにたくさんのデータがあり, 「レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます。 それを連続印刷するときに, 現在は For n = 1 To 135 Range("A1").Select ActiveCell.FormulaR1C1 = n ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next n End Sub というマクロで実行させています。 (ちなみにマクロの知識がほとんどなく 「新しいマクロの記録」を利用して作ったため,ほとんど意味は分かっていませんが・・・) このマクロでも印刷できるのですが, このままだとデータが 1 ~ 135に固定されてしまいますよね。 実際はデータ数が変動するので,そのたびにマクロの数字を変えています。 そこで考えているのが 新たに「設定」シートを作成して そこのiとjのセルに数字を入力することで,自動的に マクロが n = (iに入力した数字) To (jに入力した数字) となるようにした方が便利だと考えています。 あまりマクロについての知識がないくせに ほんのちょっとの工夫でできるような気がして・・・ あれこれ試してみたけどできません。 できれば今のマクロを根本的に変えるのではなくて 少しの変更とか追加とかでできるようにしたいのですが可能でしょうか? ぜひ 教えてください。よろしくお願いします。

  • ■ エクセルマクロについてです。初級?

    エクセルのマクロでデスクトップにあるエクセルファイルを開くにはどうしたらいいのでしょうか? 現在は、エクセルファイルA.xls B.xlsという2つを開いていて、マクロを実行することができるのですが、これをA.xlsだけ開いている上体で、実行したいのです。 なので、デスクトップに置いてあるB.xlsファイルを開くコマンド?というか、関数が知りたいのですが、どうしたらいいのでしょうか? 現在はこのような感じになっております。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/9/10 ユーザー名 : ' ' ActiveCell.FormulaR1C1 = "12345" Range("G17").Select ActiveCell.FormulaR1C1 = "129876" Range("G18").Select Windows("B.xls").Activate Range("N16").Select ActiveCell.FormulaR1C1 = "8/4/2008" Range("N17").Select ActiveWorkbook.Save Range("O16").Select ActiveWorkbook.Save ActiveWindow.Close End Sub

  • エクセル:常に保護をかけるがマクロは有効

    シートに、マクロ実行時以外保護をかけておきたいです。 (マクロで、ロックをかけたセルを操作したいので) 「マクロを記録する」で保護をかける操作を記録してもらったところ、 「許可する操作」は以下の記述で実行されるようです。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True ここに「マクロからの変更は有効」の UserInterfaceOnly:=True を加えた以下のコードは、 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True, UserInterfaceOnly:=True どのSubに記述すればよいでしょうか。 ワークシートに直接書込むんですよね? Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub に書いてみたら一時期正常に動いていたと思うのですが、どうやら勘違いだったみたいです。 ActiveもChangeも違うようなのですが(なぜかどちらも一時は動いたような…)。

  • エクセル:新しいマクロの記録について

    「新しいマクロの記録」で、 ・Sheet1のセルA1に「=Sheet2!I1」と入力 という操作を記録してもらったのですが、 記録された内容を見ると、 ActiveCell.FormulaR1C1 = "=Sheet2!RC[8]" と書かれていました。 FormulaR1C1もよくわからないけど、 検索したところ、たぶんセル入力に使う決まった記述なんだろうと認識しました。 が、「セルI1」が「RC[8]」になったのが理解できません。 どんな法則でこの「8」という数字が出てきているのでしょうか? 別のコードの中では、 コード内では同じ RC[229] なのですが、 参照するシートによって、この参照しているセルが変化しているように見えます。 具体的には、 Sheet1!RC[229]と書かれた方はセルIM2を、 Sheet2!RC[229]と書かれた方はセルIB2を参照しています。 (実際セルにカーソルを合わせると、RC[229]の部分はIM2,IB2と表示されます) Sheet1も2も、最も右側にある列はそれぞれIM,IBなので、 RC[229]とは終端を意味するのでしょうか?

専門家に質問してみよう