ご覧いただきありがとうございます。
Excelで下記のようなマクロを書いたのですが、思ったような処理をしてくれません。色々なWebページや参考書に当たってみましたが、どうしてもわかりません。どの点が間違っているのか、どう直したらよいか、ご教示いただけませんでしょうか。
なお、意図している処理は次のようなものです。
・セルB2:B21のデータをリストボックスに表示(この部分は別途作成済みです)
・リストボックスに表示されている項目をユーザーが複数選択する
・選択後コマンドボタン2をクリックすると、選択された項目を含む行を削除する
以上ですが、選択した項目のうち最初のものだけを削除しただけで終了しています。お手数をおかけいたしますが、よろしくお願いいたします。
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Dim I As Integer
If ListBox1.ListIndex = -1 Then
MsgBox "選択されていません"
Exit Sub
End If
Dim myStr(19) As Variant
Dim myCell(19) As Variant
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
myStr(i) = .List(i)
Set myCell(i) = Workbooks("PERSONAL.XLS").Sheets(1).Range("B2:B21").Find(myStr(I), , xlValues, xlWhole)
ThisWorkbook.Activate
myCell(i).EntireRow.Delete
End If
Next i
End With
Unload Me
Application.ScreenUpdating = True
End Sub
No.21
- 回答日時:
akeem2003 様
こんばんは。Wendy02です。
まだ、少し、気になっている部分はありますが、今後は、akeem2003 様のほうが、今度は、私とバトンタッチしてくださるように期待しています。最初は、すごいなって思っているコードでも、1年経ち、2年経つと、あのときは、すごいと思ったものも、それほどではないなっていうことが多いものです。個々のプロシージャーは、それほど難しいコードは書いていないはずです。ここまできて、どうやら、お叱りを受けずに削除されなかったようでホッとしているというのが、正直な気持ちです。
久々で、良い経験をしました。
今更ですが、UserFormをお使いになっていたものとは、内容的にも違いますので、本当に良かったか、少し、気をとがめています。実は、うまくいかなくて、途中であきらめかけたのです。また、本来は、メニューのファイル(F)の中にもぐりこませることも可能でしたが、そういう確認もしませんでした。ただ、今、私のほうも、同じマクロを使い続けていますが、問題はなく働いています。(Excel2003)
また、私は、hta ファイル(WSHのメニューファイル)で、Excelの特定のファイルを開けるようなこともしております。こういう方法は、今回は紹介しませんでした。
今、VBAは、端境期にあるので勉強しずらくなっています。私がVBA/VBの書籍を、オークションでDeveloper 版などの参考本を集めていたのは昨年です。いまさら、VB6 の勉強などはお勧めしませんし、かといって、VB.Net(VB2005)では、あまりに違いすぎます。ただ、当分(5~6年ぐらい)は、VBAは残りそうな気もしますが、今後、私は、VBA自体が蚊帳の外に置かれるのではないか、と思っています。そうすると、多くの、MS-Officeのマクロプログラマとしては、あきらめていくのではないか、なんて想像したりしています。今、現在、MS-Office は、ちゃくちゃくと、COMアドイン化の方向にありますから、COMアドインでなければ、アドインにはあらず、というような風潮が強くなるかと思います。
なお、私の教科書的に使っているのは、『Microsoft Office 97 プログラマーズガイド』マイクロソフトKK (ほとんど手に入りませんが、これに匹敵する本は、ひとつもありません。MSの文章がまともだった頃の書籍です。)似たような書名で『Excel2000のプログラマーズガイド』というのは、まったく内容は別です。
もうひとつは、#5 で紹介していた後になる書籍で、井川はるき氏の『Excel VBAプロの技』ナツメ社-プロと書かれていますが、内容的には中級レベルです。一通り学んだ人が、おさらいしたり、知識の補充したりするのにはちょうどよいレベルです。文章が練りこんでいないので、読みにくいのが難点です。
私は、今、VBAから別の本格的な言語の勉強をし始めています。いつになったら覚えるかは分かりませんが、いつまでも、勉強はしていくつもりです。
>今後は、akeem2003 様のほうが、今度は、私とバトンタッチしてくださるように期待しています。
おそれおおいお言葉です。他の質問へのご回答を拝見しますと、とてもWendy02様の域には達せそうにありませんが、目標は高く持ってがんばろうと思います。#21でお教えいただいた書籍も探してみます。
>今更ですが、UserFormをお使いになっていたものとは、内容的にも違いますので、本当に良かったか、少し、気をとがめています。
とんでもないです。ユーザーフォームを使ったのは、他の方法を思いつかなかったためで、いまのかたちのほうが格段にスマートで、大満足です。お作りくださったマクロが実際動いたときは、とても興奮しました。
今はまだ、簡単なコードを書くにも一日費やしたりするようなレベルですが、いつかは、他の人に使ってもらえるようなマクロを作れるようになりたいと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
Wordで差込印刷した後に別々の...
-
ExcelブックをGoogleスプレッド...
-
サブフォルダから部分一致のエ...
-
Excel csv保存 列数が異なる場...
-
エクセルファイル名に更新日時...
-
EXCEL 検索時の設定
-
【Excel VBA】ファイルを保存し...
-
vbaでボタンをクリックして上書...
-
エクセルで、フィルタかけたま...
-
VBAでマクロを使って、マクロ無...
-
エクセルのマクロで行と列の削...
-
エクセルVBAに詳しい方! マクロ...
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
VBA 最新のフォルダ取得
-
Windows10でコマンドプロンプト...
-
VBA フォルダ名に特定の文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
Wordで差込印刷した後に別々の...
-
Excel csv保存 列数が異なる場...
-
エクセルファイル名に更新日時...
-
エクセル UserForm 呼び出しで...
-
サブフォルダから部分一致のエ...
-
実行時エラー52
-
マクロ実行後、表示がおかしくなる
-
エクセルでcsvファイルを開いて...
-
VBAでマクロを使って、マクロ無...
-
複数のexcelのファイルを一括で...
-
PowerPoint 2002でファイル名を...
-
エクセルのマクロで行と列の削...
-
大量のCSVファイルをExcel形式...
-
EXCEL 検索時の設定
-
For~Nextルーチンで最初の1回...
-
処理速度にムラがあり過ぎる
-
エクセルで、フィルタかけたま...
おすすめ情報