• ベストアンサー

マクロで自動入力がしたいのですが

エクセル2000(Win)を使用しています。 下のような表があります。 チェック欄を手入力するのが手間なので、マクロで自動入力できないか考えました。 チェック欄  ID  チェックしたいID   1     1    1         2    3   1     3    5         4       1     5       ↑   このチェックをマクロで自動入力したい。 マクロは詳しくないので、エディタは用いず ツール→マクロ→新しいマクロの記録で相対参照をオンにして1行をマクロに記録しました。 しかし何度やっても1行目しかチェックしてくれません。 2行目以降もマクロでチェックしてほしいのですが。 できることはできますよね? 原因として何が考えられるか、教えていただけますか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

自動記録ではご希望のことはできません。 削除して、代わりに#4でわたしが提示したコードをコピペしてみてください。 コピペしたら、Alt+F11キーでワークシートに戻り、Alt+F8でマクロを呼び出し、chkTst2マクロを実行してみてください。 データの並びは A列がチェック欄 B列が  ID欄 C列が  チェックしたいID欄 でそれぞれ1行目はタイトル行(2行目以降にデータ) としてください。

MSK567
質問者

お礼

うまくいきました。 書かれている言語の意味が全くわからないし、 何故自動記録でできないかも理解できないので 今後勉強したいと思います。 ありがとうございました。

その他の回答 (4)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

#3のmerlionXXです。 #3のコードではB列C列の双方に途中に空白セルがあった場合、空白同士をIDが一致していると見てしまいました。修正します。 Sub chkTst2() Dim lb As Long, lc As Long, i As Long, n As Long With ActiveSheet lb = Range("B" & .Rows.Count).End(xlUp).Row lc = Range("C" & .Rows.Count).End(xlUp).Row For i = 2 To lb For n = 2 To lc If .Cells(i, "B") <> "" Then If .Cells(i, "B") = .Cells(n, "C") Then .Cells(i, "A") = 1 End If End If Next n Next i End With End Sub

MSK567
質問者

補足

ありがとうございます。 言語の意味がよくわからないの既に諦め気味ですが、 一応エディタからコピーして貼り付けさせてもらいます。 Selection.Copy ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.Select Selection.Find(What:="1", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate ActiveCell.Offset(0, -1).Range("A1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "1" ActiveCell.Offset(1, 0).Range("A1").Select End Sub

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> できることはできますよね? もちろん > 原因として何が考えられるか、教えていただけますか? うまく行かないコードをお見せいただかないと誰にもお答えできないとおもいますよ。 どのような配置になっているのかわからないので適当に想定しました。 A列がチェック欄 B列が  ID欄 C列が  チェックしたいID欄 でそれぞれ1行目はタイトル行(2行目以降にデータ) とします。 エディタで標準モジュールに以下をコピペ Sub chkTst1() Dim lb As Long, lc As Long, i As Long, n As Long With ActiveSheet lb = Range("B" & .Rows.Count).End(xlUp).Row lc = Range("C" & .Rows.Count).End(xlUp).Row For i = 2 To lb For n = 2 To lc If .Cells(i, "B") = .Cells(n, "C") Then .Cells(i, "A") = 1 End If Next n Next i End With End Sub

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

No.1のご回答の通り、マクロの記録だけではうまくできません。 マクロでなければならないのでしょうか。 一例として、A1セルに =IF(ISERROR(VLOOKUP($B1,C:C,1,0)),"",1) をいれて下までコピーしてみて下さい。 ご質問の内容だけならはマクロなしでもとりあえずは出来ると思いますが。 ご参考になれば。

MSK567
質問者

お礼

教えていただいた方法で今回は解決しそうです。 今後さらに複雑になるかもしれないので、 これを機に少しマクロの勉強をしていきたいと思います。 ありがとうございました。

  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

やりたいことはわかりますが、それはマクロをエディタで編集しないと、マクロでやることはできません。それを勉強されるか、もしくは、オートフィルタで条件を複数指定して抽出し、チェック欄の部分に手入力で1を入れるか、チェック欄に=IF(OR(B2=1,B2=3,B2=5),1,"")と入れて下までコピーするかです。

MSK567
質問者

お礼

オートフィルタでは少し作業が大変になるのです。 やはり勉強しないと無理みたいですね。 ありがとうございます。

関連するQ&A

  • エクセルのマクロ絶対参照と相対参照の指定方法

    私は、エクセルでマクロ自動記録を勉強しはじめたものです。 エクセル2000の参考書で絶対参照と相対参照の指定方法の説明をみると、 「マクロの記録中に表示される<記録終了>ツールバーの<相対参照>ボタンで切り替えます。 このボタンをくぼんでいない状態にすると絶対参照、クリックしてくぼんだ状態にすると相対参照で記録されます。」 以上のように解説されているのですが、実際に試してみると、 ステップ1. ツールバー→マクロ→新しいマクロの記録→マクロ名とショートカットキー入力→OK ステップ2.操作どうりに自動的にマクロが記入される。 ステップ3.ツールバー→マクロ→マクロの終了→クリック ステップ4.絶対参照のマクロが登録されてしまいます。 絶対・相対参照の切り替えステップをが見つけることが出来なくて困っています。 過去カテによれば マクロの記録時に「操作終了」というツールボックスが表示されますよね? 2つあるボタンのうちの右側のボタンが相対参照と絶対参照を切り替えるためのボタンになっています. もしも「操作終了」のボタンが表示されないのであれば,一度ダミーでマクロの記録を実行して,記録中にメニューの下の空白部分(灰色の部分)を右クリックし,「記録終了」をチェックすると,ツールボックスが表示されるようになります。 これも試しましたが、マクロの記録時に「操作終了」も 記録中にメニューの下の空白部分(灰色の部分)も見付ける事が出来ません。 WindowsMe Office2000Personalに於いては、絶対・相対参照の切り替えは不可能なのでしょうか? 可能なら絶対・相対参照の切り替えボタンを表示させる方法を教えて頂きたいと思います、よろしくお願いします。

  • マクロのツールバー

    はじめまして。 パソコン初心者です。 できる方からすると、すごく簡単な質問かもしれませんが、お答えいただけると助かります! エクセルでマクロを作成しようとしたんですが、 今までは [ツール]→[マクロ]→[新しいマクロを作成する]→(マクロ名を入力したり)→[OK]という段階を踏むと、 小さなツールバーボックス(?)とでも言うのでしょうか、相対参照や記録終了のボタンがある小さなツールバーが出現していたのですが、それが現れなくなってしまいました。 記録終了自体は[ツール]→[マクロ]→[記録終了]でできるのですが… どうしたら、またあの小さなツールバーを出すことができるか教えてください。 お願いします!!

  • EXCEL2000 マクロダイアログボックス

    よろしくお願いします。 先日EXCEL2000にてツール→マクロ→新しいマクロの記録からマクロを作成しました。その作っているときに表示されていたはずの”相対参照ボタンや記録終了”のダイアログボックス「みたいものがあると思います…」が、先日思わず×を押して閉じてしまいました。 それからです、ツール→マクロ→新しいマクロを開いても、もう二度と出てこなくなりました。 さていったいこのツールはどこへ行ったのでしょうか? どこかを押せば出てくるとは思うのですが、分かりません。 ひとつアドバイスをよろしくお願いいたします。

  • 自動入力マクロ教えてください

    sheet1のB列に数値を入力していますデータは10行目以降に入力されています。 データが1,10.20ならsheet2のB列、2.15.35ならsheet2のC列5.40ならsheet2のD列それ以外はsheet2のE列に自動的に入力したいのですがそのマクロを教えていただけないでしょか。行はsheet1と同じ行に入力します

  • エクセルで作った表へ自動入力したい

    例えば、100世帯のマンションがあります。エクセルの行に001~100までの世帯番号を、列に何月分かを列記した管理表を作ります。 別のシートに、例としてM1に世帯番号を、M2に貰った家賃が何月分かを、M3に家賃を貰った日付を入力して日報を作ると、自動的に管理表の座標を探してM3の日付が入力するようにしたいと質問したら、 一般機能では無く、マクロ処理になりますね。 1.[Alt]+[F11] で Visual Basic Editor を起動し、[挿入]-   [標準モジュール] で開く画面に、次の3行をコピペします。   Sub TEST()    Range(Range("M1") & Range("M2")) = Range("M3")   End Sub 2.M列各セルに、次の内容を入力します。   M1:列記号を入力( 入力例:C )   M2:行番号を入力( 入力例:4 )   M3:データを入力( 入力例:テスト ) 3.[ツール]-[マクロ]-[マクロ] から TEST を選択して実行します。     →C4に テスト と入力されます。   M1:M3 に入力してマクロを実行するたびに、指定されたセルに書き込まれます。 との答えを頂きました。しかし日報の様に使いたいので、M列だけで無くN、L、Oと列記して次々と管理表に入力出来る様にしたいのです。どの列でも、1に世帯番号を、2に何月分かを、3に領収日を入力すれば、自動的に管理表に入力されるようにしたいのです。宜しくお願いします。

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

    Excel2003でも同じかもしれませんが、マクロを記録する場合、「相対参照で記録」のボタンの使い方がわかりません。「マクロの記録」ボタンをクリック後にセルを範囲選択さえしなければ、このボタンを使う必要は無いように思うのですが…(逆に「マクロの記録」ボタンをクリックしてマクロをスタートさせたあとでセルを範囲選択した場合、「相対参照で記録」ボタンは意味を成さないと思います。何か勘違いしているのでしょうか?) お忙しいところを申し訳ありませんが、ご存知の方よろしくお願い致します <(__)>

  • マクロでの相対参照ペースト

    (マクロ・VBA初心者です・・・・・・) 職場で使用している掲示板で、読んだ人がチェックする為に、 書き込みの後に名前のリストをコピー→貼り付けしています。 これをマクロを使って、任意のセルを選んでマクロを実行すれば リストが貼り付けられるようにしたいのですが、貼り付けがうまく行きません。 マクロの記録で行っているのは、 (1)名前のリストをコピー(絶対参照) (2)コピーしたリストを貼り付け(相対参照) なのですが、貼り付けが相対参照で行われず、絶対参照で行われてしまいます。 記録終了バーが相対参照になっているのは確認しているのですが・・・・・・。 自分なりにマクロの本を読んだりネットで探してみたりしましたが、 基本的なこと過ぎるのか解決策が見つからず、途方に暮れて質問させて頂きました。 もしかしたら何か基本的なところを見落としているかもしれませんが、 何卒宜しくお願い致します。

  •  いつまで経ってもパソコン超初心者でエクセルのマクロのことはまるでわか

     いつまで経ってもパソコン超初心者でエクセルのマクロのことはまるでわかりません。OSはXP3、ソフトはエクセル2000です。3列4行の表と3列3行の表を画像のように結合させるマクロを、ツール→マクロ→新しいマクロの作成→マクロ名&ショートカットキーの欄を埋めてマクロを記録させた所、セルをクリック・ドラッグしたところでしか結合させてくれません。任意のセルで実行させるにはどのようにすればよいのでしょうか。手取り足取りレベルでご教示いただきたくお願いします。

  • excelのマクロについて

    “1枚だけ印刷する指示を与える”など、簡単なマクロを作っています。新しいマクロの記録をするときに、画面上に「記録終了」と「相対参照」のの指示ボタンが出てきますが、そのボタンを消してしまい、以後出そうと思っても見つかりません。 (1)どうやったら出せるのでしょうか? (2)またそのボタンがないときに「相対参照」のマクロを作りたいときはどうするのでしょうか? (3)全てのマクロを削除し、ファイルを開くと、以前マクロを作ったときの警告文(「有効にしますか?」)がでます。完全に削除するのはどうしたらよいのでしょうか? (4)マクロ作成時の保存先はどこが最適なのでしょうか? 完全に理解せずに使っているのでご存知の方、教えてください。

  • エクセル、マクロを使って自動的に表を完成させる方法教えて下さい

    膨大なデーターを表に入力するのに途方に暮れています。マクロ(VBA?)で自動的に入力する方法を教えて下さい。 エクセルのセル、A1~G1まで、横方向に入力した計算式や、数値をマクロで記憶させて、 同じ処理を、2行~1000行まで自動で繰り返させたいと思っていますが、繰り返しの指示の書き方がわかりません。行によって入力する数値が異なる為、 コピペではできません。どなたか宜しくお願いします。

専門家に質問してみよう