ユーザーホームで入力するとA1に転記されます。転記されたA!の内容を修正するのにA1をクリックするとユーザーホームが表示されると同時にA1の内容が一緒に表示されるようにしたいのですがうまくいきません。アドバイスお願いいたします。
現在はコマンドボタン2で呼び出しています。(123と表示できる)
セルをクリックするとユーザーホームは表示されますがA1の内容が表示されません。最終目的は指定する行でクリックし情報を表示したいです。
現在のユーザーホームの内容(Userfome1)
Private Sub CommandButton1_Click()
Dim myrow As Integer
With ActiveSheet
If .Range("A1").Value = "" Then
myrow = 1
Else
myrow = .Range(Cells(.Rows.Count, 1). _
End(xlUp).Address).Row + 1
End If
.Cells(myrow, 1).Value = TextBox1.Value
End With
End Sub
Function 戻り()
TextBox1.Value = Range("A1")
End Function
Private Sub CommandButton2_Click()
Call 戻り
End Sub
シートの内容(sheet1)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
UserForm1.Show
End Sub
No.1
- 回答日時:
こんばんは!
>セルをクリックするとユーザーホームは表示されますがA1の内容が表示されません。最終目的は指定する行でクリックし情報を表示したいです。
要するにダブルクリックしたセルの値をユーザーフォームの「TextBox1」に表示させたい!
というコトですよね?
ユーザーフォームのコードに↓のコードを追加してみてください。
Private Sub UserForm_Initialize()
UserForm1.TextBox1 = Selection
End Sub
※ 現在のコードではA列の最終行以降に「TextBox1」のデータが追加表示されますが、
おそらく選択セルのデータを変更させたい!というコトだと思います。
そこまでは手を付けていません。m(_ _)m
No.2
- 回答日時:
No.1です。
>TextBoxを増やし実行しましたがうまくいきません。画像のようにになってしまいました。
A2セルをダブルクリックするとTextBox1~TextBox4までが
1・2・23・4 となっていれば良いのですね?
↓のようにしてみてください。
Private Sub UserForm_Initialize()
With UserForm1
.TextBox1 = Selection
.TextBox2 = Selection.Offset(, 1)
.TextBox3 = Selection.Offset(, 2)
.TextBox4 = Selection.Offset(, 3)
End With
End Sub
尚、余計なお世話かもしれませんが、シートモジュールは
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
Cancel = True '←追加★
UserForm1.Show
End Sub
のようにした方が良いと思います。(「★」印の行を追加しました)
(ダブルクリックしたセルが編集状態のままなので・・・)
こんなんではどうでしょうか?m(_ _)m
No.3ベストアンサー
- 回答日時:
No.1・2です。
>またセルではなく行を押すと実行できるようにしたいとおもっています。
を見逃していました。
「行を押すと」というコトは、「行のどこかを選択するとその行のA列をアクティブにしたい!」
という意味でしょうか?
そうであれば SelectionChangeイベントで可能ですが、これはおススメできません。
(他のセルが全く編集できなくなるため)
「行のどこかをダブルクリックするとその行のA列を選択する」という意味だと
シートモジュールを↓にしてみてください。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cells(Target.Row, "A").Select
Cancel = True
UserForm1.Show
End Sub
※ 的外れならごめんなさいね。m(_ _)m
早速の回答ありがとうございました。おかげさまで僕のイメージどおりにできました。また、親切に回答して頂き心から感謝申し上げます。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
VBAでセルをクリックする回...
-
Excelのハイパーリンクにマクロ...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
Sub 要具ライフ() ActiveSheet....
-
TODAY()で設定したセルの日付...
-
【VBA】指定したセルと同じ値で...
-
エクセル マクロで セルの範...
-
VBAの計算で@が出てしまう件
-
DataGridViewのセル編集完了後...
-
任意フォルダから画像をすべて...
-
セルに抜けた番号の代わりに空...
-
DataGridViewで右寄せ左寄せが...
-
”戻り値”が変化したときに、マ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報
早速の回答ありがとうございました。この方法を応用してTextBoxを増やし実行しましたがうまくいきません。画像のようにになってしまいました。またセルではなく行を押すと実行できるようにしたいとおもっています。もう一度アドバイスいただけたらとおもいます。
よろしくお願いいたします。
Private Sub UserForm_Initialize()
UserForm1.TextBox1 = Selection
UserForm1.TextBox2 = Selection
UserForm1.TextBox3 = Selection
UserForm1.TextBox4 = Selection
End Sub