[[20071125034954]] 『消去する際に消去ボタンを同シート上に作り、それ』(えむ・けー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『消去する際に消去ボタンを同シート上に作り、それを押すこと指定範囲を消す方法を教えてください』(えむ・けー)

 マクロの記録が使えます。

http://www.excel.studio-kazu.jp/lib/e4b/e4b.html

 例に挙げているものは質問内容とは違いますが、全く同じ手順でマクロを記録することができます。

 ボタン一つで動くようにするには、
 オートシェイプもしくは、表示→ツールバー→フォームからボタンを作成して
 右クリック→マクロの登録で上で記録したマクロを登録してやると
 クリックするだけで動くようになります。
 他にコントロールツールボックスのボタンもありますが、
 初心者さんなら、右クリックからマクロの登録ができる上記2つで試してみるのが良いと思います。

 (みるくてぃー)

ありがとうございます。初心者なので、マクロ事態のことがよくわかりませんので登録とか記録のしかたについてもう少し具体的な操作のしかたを教えてください。

 ツール→マクロ→新しいマクロの記録→OK で
 マクロの記録が始まりますので、
 範囲指定をしてDelete
 四角いボタンを押すとマクロの記録が終了します。

 Alt+F11でVBEが開くので、左端にある標準みジュールをダブルクリックすると
 Module1があると思います。
 Module1をダブルクリックすると、
 以下のような記録がされていると思うので、それをコピーしてアップしてください。
                      (SHIOJII)
 Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/11/26  ユーザー名 : t02
'

'

 End Sub


 Sub test()
    Dim r As Range
    On Error Resume Next '追加
    Set r = Application.InputBox(prompt:="範囲を選択してください。", Type:=8)
    If r Is Nothing Then Exit Sub '追加
    MsgBox "セル範囲 " & r.Address & " のデータを消去します。"
    Range(r.Address).ClearContents
    Set r = Nothing
 End Sub

 このマクロを 表示−ツールバー−フォームのボタンをクリックし、作成したボタンに登録して下さい。

 (1or8)


度々で申し訳ありません。Module1をダブルクリックするところまではできました。確かにSub Macro1()以下の内容が表示されていましたが、「それをコピーしてアップする」の意味・やり方がわかりません。また、Sub test()の表示以下の操作についても何か補足点があれば、ついでに詳しくお願いします。

 >「それをコピーしてアップする」の意味・やり方がわかりません。
 これは、その表示されている内容をコピーして
     こちらのコメント欄に貼り付け(投稿)して下さい。
 と言う事です。

 もしも、そのコードを実行すれば 希望する結果
(消したい範囲のデータが消える)になるのであれば
 オートシェイプ等で、好きな形を作って 右クリック
 「マクロの登録(N)」から、Macro1を選ぶと
 オートシェイプがボタン代わりになります。

 このオートシェイプを押すと、記録に取ったときに
 消去した範囲のデータが消去されます。

 >Sub test()の表示以下の操作についても何か補足点があれば
 こちらに関しては、どこまで出来ましたかね?

 1or8さんのコードは、その都度消去する範囲を設定出来る物です。
 消去したい範囲(指定範囲)は、毎回固定ですか?

 (HANA)

 コード修正しました。
 (1or8)

なんどもすいませんがうまくできません。(理解できません・・・・)基本部分からもう一度、お願いいたします。加工したい「表(シート)」は当然表示した上でのボタン作成ですよね?また、ボタン作成をすると「マクロの登録」表示され、その中には、マクロ名の箇所に「ボタン(番号)click」となっており、新規作成・記録そして「開いているすべてのブック」→OKとなっております。したがって、どこで右クリックするのかわかりません。そのあたりから、一操作ずつ教えてもらえませんか?


 フォームのボタンの場合です。
 1. 表示−ツールバー−フォームを選択
 2. 小さなウィンドウが表示される
 3. その中のボタンをクリック
    (マウスの矢印をアイコンの上に持っていくとコメントが表示される。その中のボタンです。)
 4. シート上にボタンを作成(+マークが表示されるので適当なところでクリック)
 5. マクロの登録画面が表示されるので test を選択してOKボタン
 これでボタン作成終了です。
 作成したボタンをクリックするとマクロが作動します。
 フォームの場合は右クリックは必要ありません。
 (1or8)

 誤解がないように補足。
 ボタンに登録したマクロを変更する時には右クリックが必要です。
 また、マクロを作成する前にボタンを作成してしまうとマクロの登録ができず、ボタンだけが作成されます。
 その後マクロを作成した時に右クリック−マクロの登録でマクロをボタンに登録させます。
 今回の場合、すでにマクロは作成されているので右クリックの出番がありません。
 (1or8)

 こんなのもありますが如何ですか?
 列100、行100の範囲内で、淡黄色で色付けしてあるセルの内容を消去するものです。
 消去ボタンにコピーすれば使えます。
                       (mr_mangoos)

 Sub SAMP01()
    Dim I As Long, J As Long
    For I = 1 To 100
      For J = 1 To 100
        If (Cells(I, J).Interior.ColorIndex = 36) Then Cells(I, J) = ""
      Next J
    Next I
 End Sub


最初から、もう一度お願いします。フォームからボタンを作成したと同時にマクロの登録画面が出てきてマクロ名(M)の箇所にカーソルがあり「※ボタン15Clickとなっている」新規作成、記録(R)、マクロの保存先(A)およびOK、キャンセルとなっています。ここで、そのまま「記録(R)」をクリックするとマクロ名(M)、ショートカットキー(K)Ctrl+□、マクロの保存先を指定してきますが、ただ「OK」をクリックしただけではボタンが残っているだけで何の変化もありません。


 >最初から・・・
 [ご参考:0から始めようエクセル(Excel)VBA ]
http://excelvba.tentant.net/index.htm
 (dack)

基本的ことなのですが、XPとVISTAの違いによる説明の差はないでしょうか?アドバイス頂いた「0からはじめようエクセル(Eacel)VBA」の説明を見ても出だしからその違いで壁にぶつかります。

 それではこれ?[2007版マクロをボタンで実行するには]
http://dekiru.digitallife.jp.msn.com/2416/2416_0941.html
 で出来上がったボタンに

  Sub 1or8()
    Dim r As Range
    On Error Resume Next '追加
    Set r = Application.InputBox(prompt:="範囲を選択してください。", Type:=8)
    If r Is Nothing Then Exit Sub '追加
    MsgBox "セル範囲 " & r.Address & " のデータを消去します。"
    Range(r.Address).ClearContents
    Set r = Nothing
 End Sub

 又は

 Sub mr_mangoos() '列100、行100の範囲内で、淡黄色で色付けしてあるセルの内容を消去するものです
    Dim I As Long, J As Long
    For I = 1 To 100
      For J = 1 To 100
        If (Cells(I, J).Interior.ColorIndex = 36) Then Cells(I, J) = ""
      Next J
    Next I
 End Sub

 のマクロを貼り付ける^^
 (dack)

 (dack)さん
 説明のフォロー
 ありがとうございました。
     (mr_mangoos)

何回もで本当に申し訳ありませんが、ボタンはできましたが登録ができません。「マクロの登録」ダイアログボックスが表示されますが、上段の入力部分に「ボタン15click」となっておりその下段のボックスの中が何もありまケん。(説セによると登録したいオブジェクトを指定しボタンに登録するとなっています。)どうすればいいですか?


 そちらの操作でどこまで出来ているのか教えて下さい。
 最初に
 >Module1をダブルクリックするところまではできました。
 >確かにSub Macro1()以下の内容が表示されていましたが
 と書いて居られますが、これは現在のブックでも出来ていますか?

 この時と違うブックで行っている場合は、もう一度記録をとって
 そのコードをこちらへコピペしてみて下さい。

 (HANA)

すみません。単純にボタンの作成だけだと思います。とにかく、ボタンを作成した後の進み方がわかりません。ボタンを作成すると「マクロの登録」のダイアログボックスが表示されますが、その中の上段入力部分が「ボタ・5clickvとなっており、その下段のボックスの中には何も表示(登録)されていません。※これまでフ説明で登録したいオブジェクトを指定しボタンに登録する)なっていますが指定するもがない状態なのです。したがって、ボタンを作成直後の何かが足りないと思います。また、前回出来たというのは別のPC(XP)で手順に沿って操作した際に単純にModuie1をダブルクリックをし、SubMacro1()の表示がでたもので内容の伴ったものであったかはよくわかりません。

 「コントロールツールボックス」のボタン作成ではなく
 「フォーム」のボタン作成です
 フォームのボタン作成だと配置した後「マクロの登録」の画面がでませんか?
 (dack)(2007でも?

 >ボタンを作成すると「マクロの登録」のダイアログボックスが表示されますが
 これは、dackさんご紹介のリンク先の番号で言うと
 『4 マクロを登録する』の図の事ですよね?

 登録できるマクロが存在する場合は
 下段のボックスの中に、そのマクロ名が表示されているはずです。
 これが無いと言う事は、マクロが存在していません。

 マクロを作成する必要があります。
 みなさんがサンプルコードを載せて下さっていますので
 それを使っても良いと思いますし、それが希望する動きで無い場合は
 えむ・けーさんご自身で作る必要があります。

 ですから「記録をとって そのコードをこちらへコピペしてみて下さい。」
 と言っているのですが・・・。

 (HANA)

ご面倒おかけいたします。「記録をとってコピー・・」ですがどの部分からどのようにコピーして貼り付ければいいのですか?ボタン作成した後の表全体のことですか?こうした操作自体があまり理解出来ていません。普通にコピーして貼り付ける程度のことはできるのですが・・・・本当にお手数おかけして申し訳ありません。


 Sub Macro1()以下の内容が表示まではできるとのことなので、まずはこれを表示させて下さい。
 ここから以下の手順で

 1. 以下のSub 〜 End Sub までをコピー (mr_mangoos さんのSub 〜 End Sub でも同様です)
    a. Subの前にマウスのIを移動させる(ISubの感じに)
    b. aの状態で End Sub の b までドラッグ
    c. 選択したら(色が反転している状態)ctrl + c (コピー)

 Sub test()
    Dim r As Range
    On Error Resume Next
    Set r = Application.InputBox(prompt:="範囲を選択してください。", Type:=8)
    If r Is Nothing Then Exit Sub
    MsgBox "セル範囲 " & r.Address & " のデータを消去します。"
    Range(r.Address).ClearContents
    Set r = Nothing
 End Sub

 2. Sub Macro1に戻り、 Actrl + A で全選択した後、ctrl + v (貼り付け)
    これで、Sub Macro1() から Sub test() に変化しているはずです
 3. 下記の dack さん紹介のサイトの1番〜3番まで実施
http://dekiru.digitallife.jp.msn.com/2416/2416_0941.html
 4. 「マクロの登録」のダイアログボックスが表示が表示されている状態なので、
    一覧から test をクリックし、マクロ名に test が記入されていることを確認
 5. OK ボタン

 これでどうでしょうか?

 (1or8)

  こちらの方が確実かも!?

 @ ボタンを置きたいシートのあるブックを開く
 A Alt + F11 を押す (Visual Basic のウィンドウが表示される) 
 B このウィンドウで表示−プロジェクトエクスプローラーを選択
    ウィンドウの左側にプロジェクトのウィンドウが表示される
    (3.実行前に表示されている可能性あり)
 C VBAProject(該当ブック名.xls)上で左クリック−挿入−標準モジュールを選択
 D グレーだったウィンドウが白色になる (その白色画面上で | が点滅しているはず)

 Sub Macro1に戻りをDの白色画面に戻りに置き換えて
 上の 1.〜5. を実施して下さい。

 (1or8)

自分の操作手順にそってやってみます。目的の表を出してボタンを作ります。「ボタン1」が作成されると同時に「マクロの登録」が表示されます。その中のマクロ名は「ボタン1click」となっており「記録」を選択すると「マクロの記録」となりますので「OK」を押します。その上でAlt+F11→標準モジュールModule1をしたものが次のコピーです
Sub ボタン1_Click()
'
' ボタン1_Click Macro
'

'

    Range("G20").Select
    Sheets.Add Type:=xlExcel4MacroSheet
    Sheets("Sheet1").Select
End Sub
こんな感じなのですが、これで伝わりますか?


 「指定範囲」がどこなのか分からないので、仮に「A1:B10」の範囲として手順を書いてみます。
 但し、私は2007を持っていないのでその点ご了承下さい。

 新しいブックで試して下さい。
 A1:B10の範囲に何か文字を入れて於いて下さい。

 【一】マクロコードの作成
 1.[表示]タブをクリック [マクロ ▼]が有ると思いますので
   そこから マクロの記録(R) を選びます。
 2.マクロの記録 ダイアログボックスが表示されますので
   マクロ名(M) を 削除 として [ OK ]を押します。
 3.A1:B10の範囲を選択
 4.Delete
 5.[マクロ ▼]から 記録終了(R) を選びます。

 【二】ボタンの作成
 1.[開発]タブをクリック [挿入 ▼]から ボタンを作成して下さい。
 2.今度は、下段のボックスの中に 先ほど記録した
  「削除」と言う名前のマクロが有ると思いますので
   それを選択します。

 A1:B10の範囲に何か文字を入れて、ボタンを押すと
 この範囲の文字が削除されると思います。

 【一】から順に行い、どこまで出来たか教えて下さい。

 (HANA)


 >自分の操作手順にそってやってみます
 とありますが、私や mr_mangoos さんのコードでは目的に合わないのでしょうか?
 それとも、ボタン作成までの手順が分らないのでしょうか?
 どちらなのでしょうか?
 一生懸命説明したのですが、その辺の返事も頂けず「自分の操作手順にそってやってみます」と言われては・・・
 (1or8)

1or8さんこのご無礼お許しください。インタネットによるこのようなやり取り事態が初心者であるためにマナーを欠いた部分があったと思います。たいへん申し訳ありません。ご指摘され改めて複数の方のアドバイスを頂いていることに気づきました。みるくてぃーさん・dackさん・HANAさん・mr_mangoosさん本当にごめんなさい。また、「自分の操作手順にそって・・・」の点では、私自身キーボードが操作いっぱいいっぱいの状態なのでアドバイス頂いた内容について今一理解できないのが正直なところです。しかしながら、やりかかったことなのでこの件はなんとかやり遂げたく思いますので何卒これまで通りのご教授をお願いいたします。

できました。これまでと大きく違う点はダイアログボックスのマクロ名(M)を 削除 として範囲を指定した点?今までは自分のやっている操作そのものがよく分かっていませんでしたがやっとクリヤーできました。これまでアドバイスに参加頂いた方々に感謝いたします。私のようなド素人にこれまで丁寧にアドバイス頂けるとは最初は思ってもいませんでした。本当にありがとうございました。これからたまにご教授いただくことがあると思いますがよろしくお願いいたします。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.