エクセル VBA
ユーザーフォームのテキストボックスにアクティブセルを、含む4つのセルの値を、表示させるコードについて教えてください!!
今入れているコードは(UserForm2に入れてます)
Private Sub User Form_Initialize()
With Text Box1
.value = ActiveCell.Offset(,-1).Value
End With
With Text Box2
.value = ActiveCell.Value
End With
With Text Box3
.value = ActiveCell.Offset(,-7).Value
End With
With Text Box4
.value = ActiveCell.Offset(,-9).Value
End With
End Sub
さらにUserForm1にはコマンドボタン2を、クリックするとUserForm2が、表示され、表示と同時にテキストボックスに、表示されるようにしています。
コードは
Private Sub CommandButton3_Click()
UserForm2.Show
End Sub
というコードをいれてますが、うまく行きません。実行すると、オブジェクトが、必要ですとエラーが出て、UserForm2.Showの部分が黄色になります。
しかしテキストボックス3.4のコードを削除するとテキストボックス1.2にはうまく表示されます。
どこが間違っているのかお分かりの方是非教えてください!!よろしくお願います!
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
添付した画像の(表示方法等)意味は分かりますね。
このモードで、質問者さんが「TextBox3」だと思っているオブジェクトのオブジェクト名(赤丸部分)を確認してみてください。
おそらく別の名前が付いていませんか?
異なっていれば「TextBox3」に変更すればエラーは解消されるはずです。
※適当に作成していますので添付画像のUserForm名等が異なるのは無視してください。
ついでに「TextBox4」の方も確認することをお勧めします。
No.7
- 回答日時:
No2です
話は進んでいるよですが、No3さんも同じ結論に達しているようです。
一応確認しておきますが、ブレークポイントを設定して一旦作業を停止し、エラーの原因は
With Text Box3
.value = ActiveCell.Offset(,-7).Value
や
With Text Box4
.value = ActiveCell.Offset(,-9).Value
ではない
事の確認は終わっているのでしょうか?
No.6
- 回答日時:
No.5です。
>UserForm2の方を、Private Sub User Form2_Initialize()に変えてみましたが、
これ自体は意味ないですね。
>UserForm3にもPrivate Sub User Form_Initialize()を入れているんですが、それと判別できないのかと
フォームが開く際のイベントなので、2であるか3であるかは呼び出す事でそれぞれが自身であると認識はするでしょう。
経緯を見直してもユーザーフォーム2に配置されているコントロール(名・種別)による物のようにしか浮かばないのですが。。。
めぐみん_さん、本当に色々ありがとうございます!
ユーザーフォーム2のところをもう一度よーく見直してみます!もしかしてどこか入力ミスしてるかもなので、、、。
No.5
- 回答日時:
No.4です。
>UserForm1に問題があるのでしょうか?
問題はないように思います。
敢えて言うならUserForm2にある、
>しかしテキストボックス3.4のコードを削除するとテキストボックス1.2にはうまく表示されます。
テキストボックス3と4のコントロール名が違うか、似たようなコントロールのリストボックスを間違えて配置しているとかになるのかな?
でもそれだとUserForm2にコードを記載している時にわかりそうだし。
色々、考えて下さりありがとうございます!
UserForm3にもPrivate Sub User Form_Initialize()を入れているんですが、それと判別できないのかと、UserForm2の方を、Private Sub User Form2_Initialize()に変えてみましたが、今度はテキストボックス1〜4まで全て表示できなくなってしまいました、、、、。
No.4
- 回答日時:
No.3です。
検証は出来てませんが検索すると非表示列もカウントされるようですね。
なのでそれを踏まえての移動であるなら問題にはならないみたいですね。
調べていただきありがとうございます!
表示、非表示は関係ないのですね。
アクティブセルはJ列なので-9、-7が、無いということはありません。
このコードはUserForm2に入れていると最初に、述べさせていただいているのでが、このブックにはUserFormが3まで作成してあり、UserForm 1には
Private Sub CommandButton1_Click()
UserForm3.Show
End Sub
Private Sub CommandButton3_Click()
UserForm2.Show
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
Private Sub (CommandButton2はまだ設定してません。)
と入れてあり、Private Sub CommandButton1に関してはうまく動きます。UserForm1に問題があるのでしょうか?
No.3
- 回答日時:
>テキストボックス3.4のコードを削除するとテキストボックス1.2にはうまく表示されます。
With Text Box3
.value = ActiveCell.Offset(,-7).Value
End With
With Text Box4
.value = ActiveCell.Offset(,-9).Value
End With
Offset で-7や-9移動した値を取得出来ない列(G列より左等)のセルをアクティブにしているとか?
No.2
- 回答日時:
>オブジェクトが、必要ですとエラーが出て、UserForm2.Showの部分が黄色になります。
>しかしテキストボックス3.4のコードを削除するとテキストボックス1.2にはうまく表示されます。
ということは、
「TextBox3」または「TextBox4」の一方または両方が存在しない
ということが考えられます。
Private Sub User Form_Initialize()
の
With Text Box3
.value = ActiveCell.Offset(,-7).Value
End With
と
With Text Box4
.value = ActiveCell.Offset(,-9).Value
End With
にブレークポイントを設定して確認しないと構文上のエラーは見受けられないようです。
設定の仕方は、下記のURL等を参考にしてください。
VBA デバッグの仕方
https://www.tipsfound.com/vba/01010
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
5
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
6
VBからエクセルのテキストボックスの名称を取得したい
Visual Basic(VBA)
-
7
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
8
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
9
フォーム上の現在アクティブなコントロールの取得
Access(アクセス)
-
10
テキストボックスの値を変数に代入したい。
Visual Basic(VBA)
-
11
フォントの大きさ
Visual Basic(VBA)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
VB6,リストボックスの特定行の色変更は可能?
Visual Basic(VBA)
-
14
エクセルVBA/マルチページ/ページ切り替え時
Access(アクセス)
-
15
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
16
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
17
リストボックスの特定行の背景色
Visual Basic(VBA)
-
18
worksheet_changeがループする
PowerPoint(パワーポイント)
-
19
EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法
Excel(エクセル)
-
20
ExcelVBAでセルをクリックしてユーザーフォームを表示するには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
DataGridViewで行の展開みたい...
-
VB.NETで縦書表示をしたいので...
-
チェックボックスの文字色の変え方
-
MFCでbitmapを背景にしてstatic...
-
エクセル入力規制リスト行数
-
エクセル VBA ユーザーフォーム...
-
コンボボックスの高さを変更し...
-
条件付き書式を設定しても、テ...
-
Enabled=Falseのテキストボック...
-
MSFlexGridとDataGridの違いに...
-
スタティックテキストとエディ...
-
デザインモードを解除すると消...
-
MSFlexGrid
-
VBからエクセルのテキストボ...
-
VB6でLabelの最前面にText Box...
-
ACCESS2010 ActiveXコントロー...
-
ASP.NET : FormView内コントロ...
-
C# アプリ終了時に設定を記憶...
-
PictureBoxの背景色変更(VB.NET)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
エクセルの画像にツールチップ...
-
ADOのCursorLocationプロパティ
-
DataGridViewで行の展開みたい...
-
コンボボックスの高さを変更し...
-
Wordテキストコントロールが未...
-
checkbox付きListViewで デフ...
-
VBからエクセルのテキストボ...
-
{ CONTROL Forms.Label.1}が...
-
C# TEXTが空白であるLABELは何...
-
MSFlexGrid
-
VB.NETで縦書表示をしたいので...
-
Enabled=Falseのテキストボック...
-
デザインモードを解除すると消...
-
ユーザーフォームに日付を表示...
-
チェックボックスの文字色の変え方
-
リストコントロールのデータの...
-
PictureBoxの背景色変更(VB.NET)
-
ACCESS2010 ActiveXコントロー...
-
VB6でLabelの最前面にText Box...
おすすめ情報
ご指摘いただきました、全TextBoxの間のスペースはコピペミスです!実際にはスペースはありません!紛らわしくてすみません!!!
あ、最初のUser Formも実際にはスペースはありません!重ね重ねすみません!
個別にお返事できなかったので、補足に、入れされていただきます。
Zincerさん、デバックの方法教えていただきありがとうございます!ほんと勉強になります!
めぐみん_さん、ご回答いただきありがとうございます!もしかしてなんですが、非表示の列を、含めて-9、-7なんですが、非表示状態だと出来ないとかあるのでしょうか?
Zincerさん
検証したところ、やはりTextBox3のところでエラーが、出ました。
Zincerさん
ありがとうございます!!見てみましたら、テキストボックス3と思っていたところがテキストボックス4 でテキストボックス4と、思っていたところがテキスト5に、なっていました!!
ほんと、こんな事⁈って驚きです!全然、思ってもいなかった事なので、こちらで相談させていただいて良かったです!!
ほんとありがとうございます!!
めぐみんさんにも色々考えいただき、ほんと感謝です!!!
今回の質問で本当に色々な事が、勉強になり感謝です!!ありがとうございます!!