• ベストアンサー

エクセル2000のマクロについて質問です

マクロ初心者です。 現在「セルA1の値を、別シートのセルB10に貼り付ける」という非常にシンプルな内容(実際はこれを何度も繰り返すのですが)のマクロを記録により作っています。 今困っているのは、貼り付ける元のセル(現在のA1)の位置が、仕様変更によってたびたび変わるので、そうなると今の私のスキルでは、一々マクロの記録をやり直している状態です。 一々やり直さずにすむ、何かいい方法はあるでしょうか。 これは全く憶測で考えているのですが、例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 (コピー元のセルが別の場所に移っても、常に該当のセルを選択してもらいたい) よろしくお願い致します。

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

  • ベストアンサー
  • error123
  • ベストアンサー率21% (54/247)
回答No.1

> 例えば貼り付ける元のセルに名前をつけて、その名前のセルを選択する、のようなことができるとありがたいのですが。 まさにこれがぴったりね。 たとえば、貼り付け元のセルに「TEST」という名前を付けます。 これをSheets("Sheet2").Range("B1")に出すなら Sub TEST() Sheets("Sheet2").Range("B1").Value = Range("TEST").Value End Sub です。 貼り付け元のセル「TEST」はどこに移動してもOKです。

bari_saku
質問者

お礼

早速のご回答ありがとうございます。 現在、作業途中ですが、とくに問題なく進められています。 助かりました、感謝いたします。

その他の回答 (2)

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.3

「設定」という名前のシートを作って、その中に、コピー元のセルとコピー先のセルを書き込んでいきます。 下の図を参考にして、A2のセルから下へどんどん入れていくことができます。  ┃ A ┃ B ┃ C ┃ ━╋━━━╋━━━╋━━━╋ 1┃ 元 │ 先 │   │ ━╋───┼───┼───┼ 2┃A1 │B10│   │ ━╋───┼───┼───┼ 3┃A2 │C10│   │ ━╋───┼───┼───┼ 4┃A3 │D10│   │ ━╋───┼───┼───┼ 5┃   │   │   │ ━╋───┼───┼───┼ 6┃   │   │   │ ━╋───┼───┼───┼ 7┃   │   │   │ ━╋───┼───┼───┼ Alt+F11でVisual Basic Editorを開いて、以下のソースを標準モジュールに貼り付けます。 Sub データ貼り付け() For i# = 2 To Worksheets("設定").Cells(65536, 1).End(xlUp).Row ActiveSheet.Range(Worksheets("設定").Cells(i, 2).Value).Value = _ ActiveSheet.Range(Worksheets("設定").Cells(i, 1).Value).Value Next i End Sub これで実行していただければ、「設定」セルに書き込んだ通りに貼り付けをしてくれますよ。 上の図では、全角文字で記入しているけど、実際のセルには半角で入力してください。

bari_saku
質問者

お礼

今回の作業は、単純に下の行にコピペするわけではないのですが、ご回答は参考にさせていただきます。 どうもありがとうございました。

  • error123
  • ベストアンサー率21% (54/247)
回答No.2

追伸 セルに名前の付け方はわかるわよね? 念のために言っておくと、セルを選択したら、左上の方にある名前ボックス(A1とか表示される部分)に直接書き込みます。

bari_saku
質問者

お礼

ご丁寧に、ありがとうございました。

関連するQ&A

  • エクセルで連番をマクロで

    こんにちは いつもお世話になっています。 Windows7、エクセル2010で教えてください。  B3から仮にB100まで文字列があるとします、空白セルはありません。 この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。 実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。 マクロ記録ではB列にデータがなくなる判断ができなくて作れません。 この作業が頻繁にあるものですからマクロができれば助かります。 よろしくお願いいたします。

  • エクセルのマクロですが

    現在選択しているセルから10行下のセルまでを選択状態にするマクロを知りたいのですが。 (現在A5を選択している時に実行すると、A5からA15までが選択状態になります) よろしくお願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 たとえば、 セルA1からAA1までのセルの中で、コピーとペーストを行います。(これは記録マクロで作ります) それと同じ作業を、3行下のA3からAA3の行でも行い、 また、3行下のA6からAA6の行で行う といった作業をマクロで作る方法を 教えていただきたいです。

  • Excelマクロに、「検索」は記録されない?

    A列とB列にそれぞれ文字が入っています。 A列に含まれる文字を全て検索 ↓ 見つかったセルを含む行を選択。(A列のセルだけでなくその横のB列のセルもとりたいのです) ↓ 切り取り ↓ 別のシートに貼り付け と言う処理を順次行うマクロを作りたいのですが、自動記録してみたところ、文字列の検索・選択の部分が全く記録されません。 この部分、どのように記述したらよろしいのでしょうか? また、A列のセルのみならず、そのセルを含む行全体を選択するにはどうしたらいいのでしょうか? お分かりの方がいらっしゃいましたら、どうかご教示ください。

  • エクセルでマクロの記録が出来ません。

    エクセルでマクロの記録が出来ません。 エクセルのA列とB列に1,000行のデータがあります。 マクロの記録を起動します。 1.B1セルを選択 2.右クリックで挿入を選択 3.A列とC列にデータが有り、B列は空白となる。 4.B1セルを選択します。右クリックの貼り付けを選択。   マクロの起動前にクリップボードにあらかじめコピーしておいた   以下の式を貼り付けます。      =IF(A1="","",IF(ISERROR(FIND("-",ASC(A1))),IF(LEFT(ASC(A1),1)<>"9",MID(A1,1,3) &"-"&MID(A1,4,5)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2),IF(LEFT(ASC(A1),2)= "9X",MID(A1,1,3)&"-"&MID(A1,4,11),IF(LEFT(ASC(A1),1)="9",MID(A1,1,5)&"-"&MID(A1,6,5)& "-"&MID(A1,11,2)&"-"&MID(A1,13,2),""))),IF(FIND("-",ASC(A1))=6,A1,MID(A1,1,3)&"-"& MID(A1,4,11)))) 5.「Ctrl」+「C」 6.エクセルの左上の名前ボックスを   B1 → B1:B1000に変更。B列が選択されます。 7.「Ctrl」+「V」 8.B列に式で変換されたデータが入りました。B列が選択されたままです。 9.「Ctrl」+「C」 10.右クリックで形式を選択して貼り付けで「値」を選んでOKをおす。    セルに入っていた式は全て消えました。B列が選択されたままです。 11.マウスポインタをセルのA1におく。B列の選択が解除されました。 マクロの記録を終了 これでNO.4の操作の時に「記録できません」と表示されます。 データを一旦削除し、再度、A列とB列にデータを入れて マクロを実行してもデータB列がC列に移動しB列は空白です。 実際にマクロの記録中でもNO.1からNO.11の操作は出来ています。 なぜ記録されないのでしょうか? どうすれば記録できますか? よろしくお願いします。

  • エクセル2003で別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ

    別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ、どうしても、このマクロが作れないです。 難題すぎて・・・・ 貼り付けるセルの値は選択ボタンによって変わる仕様ですが、エクセル2003で可能なんでしょうか? 難しすぎてコードが全然解らない状態です どなたかご教授願えれば幸いです。

  • Excelマクロで置換

    Excelマクロで置換 セルA1に6桁・スペース・24桁の数字が入っています。 最初の6桁に130,397,430,440が含まれているシートを選択 そのシートの中に "ああああ"があったら"ああああい"に "いいいい"があったら"いいいいう"に "うううう"があったら"ううううえ"に と置換をするマクロを書きたいと思っています。 置換する対象の文字列は多いので別マクロで作成し呼び出したいと考えています。 シートは1ブックに30シート程。何シートあるかはブックによって変わります。 現在マクロの記録を使って試行錯誤しているのですが なにぶん初心者なのでなかなかうまくいきません。 どなたかご教授頂ければと思います。

  • エクセルのマクロ

    エクセル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

  • ExcelでのVBAマクロについて

    質問させていただきます。 今現在、知人に設定していただいた一つのマクロを使って作業しています。 (そのマクロ自体は【選択したセル】と【直下のセル】のデータを「テキスト」として『前後のスペース』を削除し「セル内改行」で結合する。高さ調整後、1セル分上がる。というものです) 今までは1セルずつこれを使って結合し、セル内文章をまとめて一番上に持ち上げていました。しかし、今回私がやりたいのは1セルずつマクロを実行(ショートカットキーを使っていますが)するのが手間なので、5セル(上下方向にです)に対して一気に先ほどの既存マクロを適応する、という風にしたいのです。(選択セルと直下セルが結合されて選択セル内文章が増えるというやり方ですので、一番初めのポインタ位置は結合したいデータの下から二つ目でないといけません。その場合、この既存マクロを4回繰り返すマクロがほしいのです) 私自身、「記録」機能を使ったマクロしか組んだことがなかったのでVBAのほうをいじってみても知識不足でエラーばかり出てしまい、困ってしまいました。 とても説明がややこしく、分かりづらいとは思いますが、ご回答いただけると有り難いです。

  • excelのマクロ

    現在、EXCELで届出書を作っています。 自動マクロでマクロも一部組んでいますが 「参照元のファイルのシートのセルが”男”だったら 別のシートの指定のセルに丸を打つ」という内容をマクロ化したいのですがわかりません。 ご教授いただきたくよろしくお願いいたします。

専門家に質問してみよう