[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『消去する際に消去ボタンを同シート上に作り、それを押すこと指定範囲を消す方法を教えてください』(えむ・けー)
マクロの記録が使えます。
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)
>「それをコピーしてアップする」の意味・やり方がわかりません。 これは、その表示されている内容をコピーして こちらのコメント欄に貼り付け(投稿)して下さい。 と言う事です。
もしも、そのコードを実行すれば 希望する結果 (消したい範囲のデータが消える)になるのであれば オートシェイプ等で、好きな形を作って 右クリック 「マクロの登録(N)」から、Macro1を選ぶと オートシェイプがボタン代わりになります。
このオートシェイプを押すと、記録に取ったときに 消去した範囲のデータが消去されます。
>Sub test()の表示以下の操作についても何か補足点があれば こちらに関しては、どこまで出来ましたかね?
1or8さんのコードは、その都度消去する範囲を設定出来る物です。 消去したい範囲(指定範囲)は、毎回固定ですか?
(HANA)
コード修正しました。 (1or8)
フォームのボタンの場合です。 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
>最初から・・・ [ご参考:0から始めようエクセル(Excel)VBA ] http://excelvba.tentant.net/index.htm (dack)
それではこれ?[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)
そちらの操作でどこまで出来ているのか教えて下さい。 最初に >Module1をダブルクリックするところまではできました。 >確かにSub Macro1()以下の内容が表示されていましたが と書いて居られますが、これは現在のブックでも出来ていますか?
この時と違うブックで行っている場合は、もう一度記録をとって そのコードをこちらへコピペしてみて下さい。
(HANA)
「コントロールツールボックス」のボタン作成ではなく 「フォーム」のボタン作成です フォームのボタン作成だと配置した後「マクロの登録」の画面がでませんか? (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)
'
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)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.