
エクセル 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(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
-
4
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
5
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
6
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
7
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
8
VBAでユーザーフォームにセル値を表示させるには
Visual Basic(VBA)
-
9
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
10
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
11
ExcelVBAでセルをクリックしてユーザーフォームを表示するには
Excel(エクセル)
-
12
テキストボックスから、複数のシートに転記する方法・・・
Visual Basic(VBA)
-
13
UserForm1.Showでエラーになります。
工学
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
16
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
17
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
18
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordテキストコントロールが未...
-
VBからエクセルのテキストボ...
-
ユーザーフォームに日付を表示...
-
VB.NETで縦書表示をしたいので...
-
エクセルの画像にツールチップ...
-
checkbox付きListViewで デフ...
-
テキストボックス(VBA)でEnter...
-
ACCESS2010 ActiveXコントロー...
-
C# TEXTが空白であるLABELは何...
-
DataGridViewで行の展開みたい...
-
コンボボックスの高さを変更し...
-
MSHFlexGrid および MSFlexGrid...
-
Excelのワークシートでのコンボ...
-
エクセル入力規制リスト行数
-
ACCESS VBA でのテキスト表示
-
デザインモードを解除すると消...
-
MSFlexGridとDataGridの違いに...
-
VB.NET ToolTipの表示条件について
-
VBのデータグリッドが表示され...
-
MSFlexGrid
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
Wordテキストコントロールが未...
-
エクセルの画像にツールチップ...
-
ユーザーフォームに日付を表示...
-
C# TEXTが空白であるLABELは何...
-
エクセル入力規制リスト行数
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
ACCESS2010 ActiveXコントロー...
-
Enabled=Falseのテキストボック...
-
VB6でLabelの最前面にText Box...
-
ADOのCursorLocationプロパティ
-
DataGridViewで行の展開みたい...
-
checkbox付きListViewで デフ...
-
VB2005 コードでのコントロー...
-
チェックボックスの文字色の変え方
-
VB6でPNGファイルを扱うには?
-
PictureBoxの背景色変更(VB.NET)
-
VB.NETで縦書表示をしたいので...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報
ご指摘いただきました、全TextBoxの間のスペースはコピペミスです!実際にはスペースはありません!紛らわしくてすみません!!!
あ、最初のUser Formも実際にはスペースはありません!重ね重ねすみません!
個別にお返事できなかったので、補足に、入れされていただきます。
Zincerさん、デバックの方法教えていただきありがとうございます!ほんと勉強になります!
めぐみん_さん、ご回答いただきありがとうございます!もしかしてなんですが、非表示の列を、含めて-9、-7なんですが、非表示状態だと出来ないとかあるのでしょうか?
Zincerさん
検証したところ、やはりTextBox3のところでエラーが、出ました。
Zincerさん
ありがとうございます!!見てみましたら、テキストボックス3と思っていたところがテキストボックス4 でテキストボックス4と、思っていたところがテキスト5に、なっていました!!
ほんと、こんな事⁈って驚きです!全然、思ってもいなかった事なので、こちらで相談させていただいて良かったです!!
ほんとありがとうございます!!
めぐみんさんにも色々考えいただき、ほんと感謝です!!!
今回の質問で本当に色々な事が、勉強になり感謝です!!ありがとうございます!!