
No.7ベストアンサー
- 回答日時:
読解力が無く申し訳ないです。
エラー処理と言う事ですか。
ListBoxQはその時、空白にしたいのでしょうか?
取敢えず、エラーの対応は、
On Error Resume Next ’エラーを無視して次の行へ
On Error GoTo ラベル ’エラー発生時ラベル迄スキップする
~
ラベル:
Err.Clear ’エラー情報をクリアー
などですかね。
>リストボックスにはフォーム起動時に.AddItem""でリストを読み込む。(ListIndex = 0なら)
ListBoxQはエラー時、空白にしたい。
On Error Resume Next
ListBoxQ.Text = WorkSheets("an").Cells(r,"B")
If Err.Number = 380 Then
ListBoxQ.ListIndex = 0
End If
Err.Clear
他には、
ListBoxQ.Text(Value) = をあきらめ
For i = 0 To ListBoxQ.ListCount - 1
If ListBoxQ.List(i) = WorkSheets("an").Cells(r,"B") Then
ListBoxQ.ListIndex = i
End If
Next i
>コントロール全部をIf文に組み込まないとダメなんでしょうか100超えるのですが…。
一機ではないでしょうから、処理時間は不問かな??
オブジェクト名を引数にしてファンクションなどで組むのはどうでしょう。。
Qchan1962様
何度も本当にありがとうございます。
文字列であれば読み込めるのに、なぜ””はダメなのか、ということに
引っかかってしまって、エラー処理をすればよいということに思い至りませんでした。
If Err.Number = 380 Then
ListBoxQ.ListIndex = 0 …こういうこともできるのかと。
たいへん勉強になりました。 作業している場所が別なので、今すぐに確認ができないのですが
ご教示いただいた内容でやってみます。
No.6
- 回答日時:
>リストボックスに表示したいと思っています。
選択すると言う意味ですか?
? リストボックスのItemには、すでにWorkSheets("an").Cells(r,"B")の値は登録されているのでしょうか?
登録されていないなら、実行時エラー380 (ListBoxQ.Text=)
登録されていれば、選択されます。
表示が選択の意味でないのなら、.Value=で設定は出来ないと思いますが、定かではありません。
Qchan1962様 何度もありがとうございます。
質問の内容がわかりづらく、ご迷惑をおかけしております。
リストボックスのItemには、フォーム起動時に””のほか、いくつかの文字列が登録されています。
質問にも書いた通り、該当のセルが空欄だとエラーになりなりますが、
登録されている文字列が入っていれば、その文字列が表示されます。
空欄だとエラーになるのを回避したいと思っています。
No.5
- 回答日時:
実行時エラー380に対しての回答ではありませんが、
>Listboxに取得したいセルの値
ListBoxQ.Value ? これってListBoxQの選択された値を取得したい時のプロパティでは?
TextBoxW.Value=のようには出来ないのではと?
ListBoxQ.AddItem WorkSheets("an").Cells(r,"B")
頓珍漢な回答ならごめんなさい。
siroppo様 スレッドお借りして申し訳ありません。
めぐみん_さんありがとうございます。
Qchan1962様 ありがとうございます。
せっかくご回答いただきましたが、
今回私が行いたかった事とは少し違うようです。
リストに追加したいのではなく、
リストボックスに表示したいと思っています。
No.4
- 回答日時:
No.3です。
>Set y =WorkSheets("test").Columns(1).Find(what:=Range("C1").Value, lookat:=xlWhole)
Findメソッドのシートと
>r =y.Row
>If Not y Is Nothing Then
>TextBoxW.Value = WorkSheets("an").Cells(r,"A")
代入元のシートが違うのに行番号は同じで間違いはないのでしょうか?
あと検索値の
>Range("C1").Value
はアクティブシートになりますが、現在WorkSheets("test")がアクティブなのですか?
めぐみん様 ありがとうございます。
はい、検索をかけるtestシートと、anシート:アクティブシートは別です。
検索をかけるシートから番地(?)を採り、アクティブシートの同一番地のレコードを取得します。
No.3
- 回答日時:
No.2です。
あ、コピペした訳じゃないんだね。
TextBoxW.Value = WorkSheets("an").Cells(r,"A")
ListBoxQ.Value = WorkSheets("an").Cells(r,"B")
↓
With WorkSheets("an")
If .Cells(r,"A").Value <> "" And .Cells(r,"B").Value <> "" Then
TextBoxW.Value = .Cells(r,"A").Value
ListBoxQ.Value = .Cells(r,"B").Value
End If
End With
ではダメですかね?
めぐみん様 いつもありがとうございます。
ご教示のコード、ちょっと変形して
If .WorkSheets("an").Cells(r,"B").Value <> "" Then
ListBoxQ.Value = WorkSheets("an").Cells(r,"B").Value
End If
としてリストボックスの1つで試してみましたが、同じエラーが出ました。
コントロール全部をIf文に組み込まないとダメなんでしょうか100超えるのですが…。
No.1
- 回答日時:
ご質問の内容だけでは、実行時エラー380は、特定の難しいエラーかも知れません。
デバッグでエラーコード(関連項目を含む)を示された方が良いと思います。
関連項目を含む:変数を使っていれば変数型など、セル値であれば文字数など
>セルの値が空欄だと
デバッグコード上での値?
エラーコードの右辺の値は""になっていますか?確認してみてはいかがでしょう。
Listboxに取得(登録)についても方法が分かりますので
ListBox1.AddItem Cells(i, 1)
ListBox1.RowSource = "Sheet1!A2:A4"
ListBox1.List = Range("A2:A4").Value
ListBox1.List = Array
ListBox1.List(.ListCount - 1, 1) = ~.Text
など、、どの方法?
取り敢えず
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
エクセルVBAでcmbBoxのプロパティの設定方法
その他(Microsoft Office)
-
5
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
6
コンボボックスのインデックスが不正
Visual Basic(VBA)
-
7
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
8
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
12
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
13
excelのInitializeイベントとActivateイベントについて
Excel(エクセル)
-
14
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
-
15
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
16
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
17
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
18
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
19
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
20
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
風俗店へ行く前のご飯
-
検便についてです。 便は取れた...
-
尿検査前日に自慰行為した時の...
-
イタリアから帰国する際、肉製...
-
勃起する時って痛いんですか? ...
-
精子に血が・・・
-
EXCELで式からグラフを描くには?
-
ボタン電池の付いていないマザ...
-
至急です。 今日アルバイト中に...
-
納豆食べた後の尿の納豆臭は何故?
-
エクセルで空白セルを含む列の...
-
ある範囲のセルから任意の値を...
-
病院側から早く来てくださいと...
-
最近、飲酒すると手のひらが真...
-
【Excelで「正弦波」のグラフを...
-
Excel関数:本日以降(以前)の...
-
値が入っているときだけ計算結...
-
四字熟語で“検”の字が入る四字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報
Qchan1962様 ご回答有難うございます。
Dim y As Range
Dim r As Long
Range("C1")= UserForm1.TextBoxID.Text
Set y =WorkSheets("test").Columns(1).Find(what:=Range("C1").Value, lookat:=xlWhole)
r =y.Row
If Not y Is Nothing Then
TextBoxW.Value = WorkSheets("an").Cells(r,"A")
ListBoxQ.Value = WorkSheets("an").Cells(r,"B")
リストボックスにはフォーム起動時に.AddItem""でリストを読み込む。
デバックの箇所にマウスを合わせると、ListBoxQ.Value = "" と出てきます。
宜しくお願いします。
Qchan1962様、 めぐみん_様
ご回答をありがとうございました。
Qchan1962様から頂いた、NO.7の回答の通り、
On Error…のコードで今回は解決いたしました。
ありがとうございました。