アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザーホームで入力すると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

「ユーザーホームの呼び出しについて」の質問画像

質問者からの補足コメント

  • 早速の回答ありがとうございました。この方法を応用してTextBoxを増やし実行しましたがうまくいきません。画像のようにになってしまいました。またセルではなく行を押すと実行できるようにしたいとおもっています。もう一度アドバイスいただけたらとおもいます。
    よろしくお願いいたします。


    Private Sub UserForm_Initialize()
    UserForm1.TextBox1 = Selection
    UserForm1.TextBox2 = Selection
    UserForm1.TextBox3 = Selection
    UserForm1.TextBox4 = Selection
    End Sub

    「ユーザーホームの呼び出しについて」の補足画像1
    No.1の回答に寄せられた補足コメントです。 補足日時:2015/03/01 11:55

A 回答 (3件)

こんばんは!



>セルをクリックするとユーザーホームは表示されますがA1の内容が表示されません。最終目的は指定する行でクリックし情報を表示したいです。

要するにダブルクリックしたセルの値をユーザーフォームの「TextBox1」に表示させたい!
というコトですよね?

ユーザーフォームのコードに↓のコードを追加してみてください。

Private Sub UserForm_Initialize()
UserForm1.TextBox1 = Selection
End Sub

※ 現在のコードではA列の最終行以降に「TextBox1」のデータが追加表示されますが、
おそらく選択セルのデータを変更させたい!というコトだと思います。
そこまでは手を付けていません。m(_ _)m
この回答への補足あり
    • good
    • 0

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
    • good
    • 0

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
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。おかげさまで僕のイメージどおりにできました。また、親切に回答して頂き心から感謝申し上げます。本当にありがとうございました。

お礼日時:2015/03/01 13:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!