WinXP(sp3) EXCEL2003
いつも本当にお世話になっております。
また、1つ教えていただきたいのですが、ユーザーフォームのリストボックよりデータ取得で、必ずクリック(選択)
しなければ、エラーになると思うのですが、ここを選ばない場合は、1行目選択としたいのですが、
どうもうまくいきません。
どなたかご教授いただけないでしょうか?
いかにコードを転記いたします。
Private Sub CommandButton1_Click()
gy = UserForm.ListBox1.ListIndex
If gy = -1 Then
MsgBox "1行目選択"
Worksheets("データ入力シート").Cells(1, 2).Value = ListBox1.List(2, 35)←ここで実行時エラー381
Else Listプロパティの値を取得で きません。プロパティのインデッ クスの配列が無効ですと なります。
Worksheets("データ入力シート").Cells(1, 2).Value = ListBox1.List(ListBox1.ListIndex, 35)
End If
Unload Me
End Sub
No.1ベストアンサー
- 回答日時:
ListBox1.List(2, 35)..というのは 1行目ではなくて List の 3行目36列ですが、その点は大丈夫ですか?
1行目は ListBox1.List(0, 35) です。
help<引用>
設定値
行および列は、0 から番号が付けられます。つまり、リストの 1 行目の行番号と 1 列目の列番号は 0 となり、2 行目と 2 列目の番号は 1 となります。以下同様に続きます。
</引用>
Listの行が2行しかないのに、List(2, xx)つまり3行目を指定すると 381エラーになります。
Listの設定値の中身を確認してください。
ご指摘ありがとうございました。
列のほうは、0からスタートで数えていましたが、行の方をついうっかり失念しておりました。
本当にありがとうございました。
No.2
- 回答日時:
>必ずクリック(選択)しなければ、エラーになると思うのですが、
通常は、選択していない事を知らせるか、なにもせずに終わらせるかだと思うのですが
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "選択されていません"
Else
MsgBox Me.ListBox1.Column(4)
Worksheets("データ入力シート").Cells(1, 2).Value = Me.ListBox1.Column(35)
End If
Unload Me
End Sub
この回答への補足
ご指摘ありがとうございます。
ただNo.1の方の御指摘で、プログラムし直したところ正常にうごいております。
ただし、検証は、EXCEL2010にてなので、単にうまく動いているように見えるだけなのかは、自信をもってだんげんできませんが、・・・
ただ論理的に言うと、リストをクリックされていないときのINDEXの値は-1でクリックされた
ときに、その行の値を返す(正確にいうと、INDEX_No.を返すなら、条件にINDEXNo.が-1の時
無理やり、アドレス(この場合、(0,35))にしてしまえばいいかなとおもったのですが、
間違いでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBでSQL文のUPDATE構文を使った...
-
【Access】Excelインポート時に...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
.VBSだとADODBのプロバイダが見...
-
「実行時エラー '3167' レコー...
-
On ErrorでエラーNoが0
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
SQLでエラーです。
-
マクロで"#N/A"のエラー行を削...
-
実行時エラー'-2147467259(8000...
-
ASPでこんなエラーが出たんです...
-
エクセルVBA 「On Error GoTo...
-
python初心者です。
-
お助けください!VBAのファイル...
-
シングルクォーテーションを含...
-
Excel vbaについての質問
-
VBSCRIPTで返されるErr.Number...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
VBA データ(特定値)のある最...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
エクセルVBA 「On Error GoTo...
-
【VBA】ワークブックを開く時に...
-
マクロの「SaveAs」でエラーが...
-
ACCESSで値を代入できないとは?
-
実行時エラー'-2147467259(8000...
-
インポート時のエラー「データ...
-
【VB.NET】 パワポ操作を非表示で
-
Filter関数を用いた結果、何も...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
メールの件名のセットでエラー...
おすすめ情報