• ベストアンサー

EXELのマクロ?

あるシートのセルF1に”0001”って入力した後、 ”出力済”コマンドボタンをクリックしたら(ボタンのみ設置済み) 「DB」シートのA列の”0001”を検索して、同シートのX列に”○”って入力するようにしたいんですが、具体的にどのようにしたらよいでしょうか?

  • Hazam
  • お礼率32% (8/25)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 ・あるシートのセルF1に”0001”って入力した後 ・「DB」シートのA列の”0001” もしかしたら、マクロの検索でつまづいたのではないでしょうか? 簡単なようでいて、気をつけなければいけない点がいくつかあります。 それは、F1 に入力された 0001 は、書式の、「0000」となっていて、「DB」シートのA列のデータも、書式の「0000」になっていなくてはいけません。 なお、プロシージャ名を除いた部分を取り出して貼り付けてください。 これは、このまま貼り付けても、ボタンのイベントとして認識しません。 '------------------------------------------------------- Private Sub CommandButton1_Click() Dim Sh1 As Worksheet, Sh2 As Worksheet Dim Kensaku As Long, c As Range '========== 設定部分 ==================  Set Sh1 = Worksheets("あるシート")  Set Sh2 = Worksheets("DB") '====================================== Kensaku = CLng(Sh1.Range("F1").Value) Set c = Sh2.Columns(1).Find(Kensaku, LookIn:=xlValues) If Not c Is Nothing Then   If Sh2.Cells(c.Row, 24).Value <> "○" Then    Sh2.Cells(c.Row, 24).Value = "○"    Beep   Else    MsgBox "既に、出力されています。", vbInformation   End If Else   MsgBox Sh1.Range("F1").Text & " は、見つかりませんでした。", vbInformation End If End Sub '-------------------------------------------------------

Hazam
質問者

お礼

一部、訂正しましたが完璧にこちらの思うことと一致いたしました。ありがとうございました。 Else   MsgBox Sh1.Range("F1").Text & " は、見つかりませんでした。"

その他の回答 (1)

  • UTwTU
  • ベストアンサー率24% (218/879)
回答No.1

マクロを使わないとダメですか? 使わなくてもIF関数使っていけるのではと思いますが。 「あるシート」の名前が「Sheet2」として、DBシートのA3からA10まで数字が入っているとしたら、X3に「=IF(Sheet2!$F$1=A3,"○","")」と入れて、A10までコピーすればよいと思います。 Sheet2のF1とA列の数値が一致したものに○が入るようになると思います。一致しなければ空白のままになると思います。

関連するQ&A

  • EXELのマクロに関して質問します。

    EXELのマクロに関して質問します。 シートAの任意のセルに文字列を入力後、シートBの同位置のセルと比較し、 同じ内容かどうかを判断する方法を教えてください。

  • マクロ(ワーク関数)について教えてください。

    マクロ(ワークシート関数?)を使用して、下記のツールを作ろうとしていますが素人の為、さっぱり分かりません。 お知恵を貸して頂きたいので、お願いします。 「概要」 ・UNIXのコマンド調査で、コマンドを過去に打ったことがあるかどうかを検索して、   ある→今後も打てる   ない→今後も打てない といった具合に結果を出力させるマクロ(ワークシート関数)?を作成する。   (シート1)→条件指定のシート ・過去に打った実績があるかどうかを(3つの条件から)検索して、結果を出力するシート    セルE9→任意のコマンドを(直接)入力→例.df セルE10→どのサーバで打つか(リスト)から選択→例.STサーバ セルE11→目的は何か(リスト)から選択→例.ディスク使用状態の確認  以上が条件指定   以下が検索結果(シート2の情報から出力する) セルE14→コマンド(df)を打った結果→例.プロンプトが戻る セルE15→コマンド(df)の意味→例.ディスク使用状態の表示 セルE16→コマンド(df)を打ったことにより監視装置にエラーメッセージが出力するか→例.出力されない セルE17→コマンド(df)が運用に影響があるか→例.なし セルD18→コマンド(df)が実際に打てるか(例 ○)→ココが本来の主旨    ・まとめるとシート1の表は下記のようになります。       D列                          E列             9行目  コマンドを入力して下さい       df(直接入力) 10行目  場所は?                 STサーバ       11行目  目的は?                  ドライブの使用状況確認      ・ ・ 14行目  どうなる(出力)              プロンプトが戻る 15行目  何の情報                ディスク使用状態の表示 16行目  アラームが出力される         出力されない 17行目  運用に影響がある              なし 18行目  打てる、打てない             ○   (シート2) ・「過去に打ったコマンド名=A列」・「打てる、打てない=C列」・「運用に影響がある=D列」・「場所=F列」・「目的=G列」・「何の情報=H列」・「アラームが出力される=I列」・「どうなる(出力)=J列」の情報が保存されている   DBみたいなモノ →下記の表のように管理しています。(他の列は必要ないので省略します。)      A列    C列    D列   F列           G列                  H列                 I列            J列 7行目   df     ○    なし  STサーバ      ディスク使用状態の確認    ディスク使用状態の表示     出力されない    プロンプトが戻る 8行目   CP    ○    なし  DBサーバ         コピー              コピー                出力されない      プロンプトが戻る ・ ・ 88行目 ・1コマンドにつき列ごとに整理されています。  A列7~88行目→打ったコマンドの一覧→88種類(これからも増えます) C列7~88行目→任意のコマンドが実際の環境で打てるか→約2種類(○or×) D列7~88行目→任意のコマンドが運用に影響があるか→約2種類(ありorなし)の2種類 F列7~88行目→コマンドの打った場所のサーバ名→約20種類(こらからも増えます) G列7~88行目→コマンドの打った目的→88種類(これからも増えます) H列7~88行目→何の情報→88種類(これからも増えます) I列7~88行目→コマンドを打った際のアラームの出力→2種類(ありorなし) J列7~88行目→コマンドを打ったらどうなるか→5種類 ・プロンプトが戻る ・プロンプトが戻りファイル生成される ・結果が標準出力された後、プロンプトが戻る ・結果が標準出力された後、プロンプトが戻る(標準出力がないケース) ・結果を標準出力したまま、Ctlr+Cで戻す          多分、マクロではなくワーク関数(VLOOKUP/INDIRECT/IF)を使えば出来ると思いますが、当方さっぱり分かりせん。 (素人でコンピュータ専門分野でもないので...。) 教えて頂けないでしょうか? 以上、お願いします。   

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

    エクセルのマクロ初心者です。 マクロを使用して印刷プレビューが見れるようにしたいです。 vlookup関数を使いsheet1に入力し、sheet2,sheet3,sheet4、sheet5へデータを反映させています。 sheet1に入力画面を作成してあり、セルA2~A13に入力すればsheet2へ、セルA17~A28はsheet3へ、セルF2~F13はsheet4へ、セルF17~F28はsheet5へデータを反映する作りです。 sheet2~sheet5はフォーマットを作成してあり、印刷するとA4で2枚印刷されるようになっています。 入力画面で入力した内容によってはA4用紙1枚ですむこともあります。(A1~M15でA4用紙一枚、A1~M31でA4用紙2枚) 教えて頂きたいことは。 ・入力画面にマクロのボタンを設置し、ボタンをクリックすると印刷プレビューが表示されるようにしたいです。 ・sheet2用、sheet3用、sheet4用、sheet5用、とボタンを設置したい。 ・印刷プレビュー後に、(実際には印刷後)に入力画面を表示したい。 ・印刷プレビューが見たいのはsheet2,sheet3,sheet4,sheet5です。 以上です。 説明が下手ですみません><

  • 関数について教えて下さい(再質問)

    過去に下記の質問をさせて頂きました。 「概要」 ・UNIXのコマンド調査で、コマンドを過去に打ったことがあるかどうかを検索して、   ある→今後も打てる   ない→今後も打てない といった具合に結果を出力させる関数を作成する。   (シート1)→条件指定のシート ・過去に打った実績があるかどうかを(3つの条件から)検索して、結果を出力するシート    セルE9→任意のコマンドを(直接)入力→例.df セルE10→どのサーバで打つか(リスト)から選択→例.STサーバ セルE11→目的は何か(リスト)から選択→例.ディスク使用状態の確認  以上が条件指定 以下が検索結果(シート2の情報から出力する) セルE14→コマンド(df)を打った結果→例.プロンプトが戻る セルE15→コマンド(df)の意味→例.ディスク使用状態の表示 セルE16→コマンド(df)を打ったことにより監視装置にエラーメッセージが出力するか→例.出力されない セルE17→コマンド(df)が運用に影響があるか→例.なし セルD18→コマンド(df)が実際に打てるか(例 ○)→ココが本来の主旨    ・まとめるとシート1の表は下記のようになります。       D列                          E列             9行目  コマンドを入力して下さい       df(直接入力) 10行目  場所は?                 STサーバ       11行目  目的は?                  ドライブの使用状況確認      ・ 14行目  どうなる(出力)              プロンプトが戻る 15行目  何の情報                ディスク使用状態の表示 16行目  アラームが出力される         出力されない 17行目  運用に影響がある              なし 18行目  打てる、打てない             ○   (シート2) ・「過去に打ったコマンド名=A列」・「打てる、打てない=C列」・「運用に影響がある=D列」・「場所=F列」・「目的=G列」・「何の情報=H列」・「アラームが出力される=I列」・「どうなる(出力)=J列」の情報が保存されている   DBみたいなモノ →下記の表のように管理しています。(他の列は必要ないので省略します。)      A列    C列    D列   F列           G列                  H列                 I列            J列 7行目   df     ○    なし  STサーバ      ディスク使用状態の確認    ディスク使用状態の表示     出力されない    プロンプトが戻る ・ 88行目 ・1コマンドにつき列ごとに整理されています。  A列7~88行目→打ったコマンドの一覧→88種類(これからも増えます) C列7~88行目→任意のコマンドが実際の環境で打てるか→約2種類(○or×) D列7~88行目→任意のコマンドが運用に影響があるか→約2種類(ありorなし)の2種類 F列7~88行目→コマンドの打った場所のサーバ名→約20種類(こらからも増えます) G列7~88行目→コマンドの打った目的→88種類(これからも増えます) H列7~88行目→何の情報→88種類(これからも増えます) I列7~88行目→コマンドを打った際のアラームの出力→2種類(ありorなし) J列7~88行目→コマンドを打ったらどうなるか →その結果下記の回答を頂きまして、大分完成に近づいてきました。    [Sheet1] F9セルに検索条件を指定するセル関数を入力します =$E$9 & "/" & $E$10 & "/" & $E$11 F10セルに検索結果の該当行を返すセル関数を入力します =MATCH(F9,Sheet2!K7:K88,0) E14~E18結果を表示します =INDEX(Sheet2!$A$7:$J$11,$F$10,@@) ※@@は返したい列を指定してください [Sheet2] k列に検索キーを生成するセル関数を入力します K7セルに検索キーを生成するセル関数を入力します =A7 & "/" & D7 & "/" & E7 K8~K88までK7のセルをコピーします  →(sheet2で)1つのコマンド(df)に対して複数のサーバ名が入力してあるレコード(1行)があります。 A列    C列    D列   F列           G列                  H列                 I列            J列 7行目   df     ○    なし  STサーバ/DBサーバ      ディスク使用状態の確認    ディスク使用状態の表示     出力されない    プロンプトが戻る 「df」で検索しサーバ名が「STサーバ」/「DBサーバ」なら「真」  それ以外の場合、「偽」となる式を教えて下さい。

  • マクロが作れません。

    31歳の会社勤めの男です。 仕事でマクロの作成を依頼されましたが、ド素人の為にとりかかることが出来ません。 お知恵を拝借できないでしょうか? 説明が下手ですが、何卒お願い致します。 「概要」 ・UNIXのコマンド調査 ・任意のUNIXコマンドをどこで、何の目的で打つかによって、  運用に影響がないか、実際の環境で打てるのか等の判断結果が出るマクロを作成する。   (シート1について)  セルD4→任意のコマンドの名前を入力する(例 df) セルD5→任意のコマンド(df)をどのサーバで打つかプルダウンから選択する(例 バックアップサーバ) セルD6→任意のコマンド(df)を何の目的で打つかプルダウンから選択する(例 障害調査) 以上が条件指定 以下が判断結果 セルD9→任意のコマンド(df)の得られる情報(例 ドライブの使用状況) セルD10→監視装置にコマンド(df)を打ったことによりエラーメッセージが出力するか(例 出力しない) セルD11→任意のコマンド(df)が運用に影響があるか(例 なし) セルD12→任意のコマンド(df)が実際の環境で打てるか(例 ○) (シート2について) ・シート1のプルダウンするセルD5からセルD12までの情報が記述されている ・コマンド単位で列ごとに整理されています。    A列1~50行目→コマンドの一覧が記載(シート1のセルD4に該当)→50種類   B列1~50行目→サーバ名が記載(シート1のセルD5に該当)→約30種類   C列1~50行目→目的が記載(シート1のセルD6に該当)→約5種類   D列1~50行目→任意のコマンド(df)の得られる情報が記載(シート1のセルD9に該当)→50種類   E列1~50行目→監視装置にコマンド(df)を打ったことによりエラーメッセージが出力するか記載(シート1のセルD10に該当)→出力or出力しないの2種類   F列1~50行目→任意のコマンド(df)が運用に影響があるか記載(シート1のセルD11に該当)→ありorなしの2種類   G列1~50行目→任意のコマンド(df)が実際の環境で打てるか(シート1のセルD12に該当)→○×の2種類

  • 関数について教えて下さい。(再質問)

    過去に下記の質問をさせて頂きました。 「概要」 ・UNIXのコマンド調査で、コマンドを過去に打ったことがあるかどうかを検索して、   ある→今後も打てる   ない→今後も打てない といった具合に結果を出力させる関数を作成する。   (シート1)→条件指定のシート ・過去に打った実績があるかどうかを(3つの条件から)検索して、結果を出力するシート    セルE9→任意のコマンドを(直接)入力→例.df セルE10→どのサーバで打つか(リスト)から選択→例.STサーバ セルE11→目的は何か(リスト)から選択→例.ディスク使用状態の確認  以上が条件指定 以下が検索結果(シート2の情報から出力する) セルE14→コマンド(df)を打った結果→例.プロンプトが戻る セルE15→コマンド(df)の意味→例.ディスク使用状態の表示 セルE16→コマンド(df)を打ったことにより監視装置にエラーメッセージが出力するか→例.出力されない セルE17→コマンド(df)が運用に影響があるか→例.なし セルD18→コマンド(df)が実際に打てるか(例 ○)→ココが本来の主旨    ・まとめるとシート1の表は下記のようになります。       D列                          E列             9行目  コマンドを入力して下さい       df(直接入力) 10行目  場所は?                 STサーバ       11行目  目的は?                  ドライブの使用状況確認      ・ ・ 14行目  どうなる(出力)              プロンプトが戻る 15行目  何の情報                ディスク使用状態の表示 16行目  アラームが出力される         出力されない 17行目  運用に影響がある              なし 18行目  打てる、打てない             ○   (シート2) ・「過去に打ったコマンド名=A列」・「打てる、打てない=C列」・「運用に影響がある=D列」・「場所=F列」・「目的=G列」・「何の情報=H列」・「アラームが出力される=I列」・「どうなる(出力)=J列」の情報が保存されている   DBみたいなモノ →下記の表のように管理しています。(他の列は必要ないので省略します。)      A列    C列    D列   F列           G列                  H列                 I列            J列 7行目   df     ○    なし  STサーバ      ディスク使用状態の確認    ディスク使用状態の表示     出力されない    プロンプトが戻る 8行目   CP    ○    なし  DBサーバ         コピー              コピー                出力されない      プロンプトが戻る ・ ・ 88行目 ・1コマンドにつき列ごとに整理されています。  A列7~88行目→打ったコマンドの一覧→88種類(これからも増えます) C列7~88行目→任意のコマンドが実際の環境で打てるか→約2種類(○or×) D列7~88行目→任意のコマンドが運用に影響があるか→約2種類(ありorなし)の2種類 F列7~88行目→コマンドの打った場所のサーバ名→約20種類(こらからも増えます) G列7~88行目→コマンドの打った目的→88種類(これからも増えます) H列7~88行目→何の情報→88種類(これからも増えます) I列7~88行目→コマンドを打った際のアラームの出力→2種類(ありorなし) J列7~88行目→コマンドを打ったらどうなるか→5種類 ・プロンプトが戻る ・プロンプトが戻りファイル生成される ・結果が標準出力された後、プロンプトが戻る ・結果が標準出力された後、プロンプトが戻る(標準出力がないケース) ・結果を標準出力したまま、Ctlr+Cで戻す →その結果下記の回答を頂きまして、大分完成に近づいてきました。    [Sheet1] F9セルに検索条件を指定するセル関数を入力します =$E$9 & "/" & $E$10 & "/" & $E$11 F10セルに検索結果の該当行を返すセル関数を入力します =MATCH(F9,Sheet2!K7:K88,0) E14~E18結果を表示します =INDEX(Sheet2!$A$7:$J$11,$F$10,@@) ※@@は返したい列を指定してください [Sheet2] k列に検索キーを生成するセル関数を入力します K7セルに検索キーを生成するセル関数を入力します =A7 & "/" & D7 & "/" & E7 K8~K88までK7のセルをコピーします  →3つの検索条件で一致した場合はリストから正しく表示しますが、  一致しない場合は、結果が「#N/A」と出力します。  条件がひとつでも一致しない場合は、「#N/A」でなく「空欄」で何も表示しない状態にしたいのですが  可能でしょうか? 宜しくお願いします。

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

    初心者の私ですが、エクセルでマクロについて教えていただきたいのですが、 質問1:コマンドボタン1をL6セルに作成。ボタン1(名称は”未”)をクリックするとF6からK6のセルが赤色反転する。さらにボタン名称が”済”に変わる。もう一度ボタン1を押すとセルの色は元に戻りボタン名称が”未”に戻る。このようなボタンは作成できますか? 質問2:さらに、そのボタンをシート内に多数作成したいのですが、コマンドボタン2をL7セルに作成。ボタン2(名称は”未”)をクリックするとF7からK7のセルが赤色反転する。さらにボタン名称が”済”に変わる。もう一度ボタン2を押すとセルの色は元に戻りボタン名称が”未”に戻る。コマンドボタン3をL8セルに作成。ボタン3(名称は”未”)をクリックするとF8からK8のセルが赤色反転する。さらにボタン名称が”済”に変わる。もう一度ボタン3を押すとセルの色は元に戻りボタン名称が”未”に戻る。・・・くりかえし・・・コマンドボタン250をL255セルに作成。ボタン250(名称は”未”)をクリックするとF255からK255のセルが赤色反転する。さらにボタン名称が”済”に変わる。もう一度ボタン250を押すとセルの色は元に戻りボタン名称が”未”に戻る。という具合にコピーしたいのですが、簡単な方法はありますか?

  • 検索後、削除や抽出するマクロ

    エクセルのシート1、A列の1~1500のセルにテキストが入力されており ある特定のテキストを含むセルを全て シート2のA列に抽出したいのですが、検索してみましたがうまくできません。 作業の流れとしては シート1のA列を範囲指定し、編集-検索、検索する文字列を入力し、すべてを検索をクリック 検索結果をコピーし、シート2のA列に貼り付ける もうひとつはシート1、A列の1~1500のセルにテキストが入力されており テキスト1またはテキスト2を含むセルを全て削除するというマクロを作成したいです。 ご指導のほどよろしくお願いいたします。

  • エクセルの検索マクロ

    以下のようなマクロを作成しようとしているのですが、なかなかうまくいきません。 どなたかご教授お願いいたします。 ・セル(A,2)に入力されている文字を検索ボタンを押すことで検索する  ※検索ボタンはコマンドボタン ・検索対象は、Book内の全シート ・検索後は、見つかったセルに移動 ・見つからなかった場合は、”ありません”を表示

  • エクセルのマクロで出来ますか?

    お世話になります。 あるセルを選択し、コマンドボタンをクリックすると別のシートにある詳細記入欄があるセルにジャンプし、入力が終わってまた違うコマンドボタンを押すと最初に選択したセルと別シートに記入した内容がリンク付けされているというものを作成したいと思っています。 一例をいうと、メインシート(点検チェックシート)、サブシート(点検詳細内容シート)があってメインシートのあるセルを選択してコマンドボタン(ユーザーカスタムで作成?)を押すと自動的にサブシートに飛びます。サブシートでは番号(通し番号)が振ってある表があり、上記のコマンドボタンを押すと自動的に新しいセルに記入でき、そしてさらに別のコマンドボタンを押すと、メインの最初に選択したセルにサブの番号が書かれて、次回からはその番号を押すとサブのシートに飛ぶといった実に都合のいい思いをもっています。 このことを実現しようとするとどのようなテクニックを駆使すればいいのか、ご教示いただけますか?

専門家に質問してみよう