2017-08-23 21 views
0

私は、セル値をクリックするようにユーザーに求める次のコードを持っています。値が選択されると入力ボックスvbaは値の代わりにセル番号を表示します

Dim sDate As Range 
On Error Resume Next 
    Application.DisplayAlerts = False 
     Set sDate = Application.InputBox(Prompt:= _ 
      "Please select start date.", _ 
       Title:="Start Date", Type:=8) 
On Error GoTo 0 
    Application.DisplayAlerts = True 
    If sDate Is Nothing Then 
     Exit Sub 
    Else 
     sDate.Font.Bold = True 
    End If 
End Sub 

入力ボックスは、しかし、私は$ A 3 B $ B3ディスプレイをクリックして、たとえば言うことができます。私は$ b $ 3の中にある値を表示したいと思います。たとえば、17-Junが$ b $ 3の中にあった場合、入力ボックスに17-Junと$ b $ 3は表示されません。

+0

あなたがタイプとそれを行うことはできません:= 8、それはアドレスが表示されます。また、ユーザーが複数のセルを選択した場合にどうなるかを検討してください。 –

+0

私はただ1つのセルをそれ以上選択しようとしていません。私は範囲をしたことを理解しますが、それはどのように単一細胞に再加工されますか?タイプ:= 2を表示すると、シングルセルに切り替わった後に表示されますか? –

+0

なぜあなたのコードからサブ名を省略しましたか? – jsotola

答えて

2

もう1つの答えは、ユーザーフォームを使用することです。

このような、ユーザーフォームを作成します。

enter image description here

注: "OK" ボタンがフォームの "OK" と命名し、白のテキストボックスは "dateBox" である

さをコード、使用:

Private Sub Ok_Click() 
ActiveCell.Font.Bold = True 
UserForm1.Hide 
End Sub 

その後ワークシートモジュールで、これを置く:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Target.Cells.Count = 1 Then UserForm1.dateBox.Value = Target.Value 
End Sub 
Sub bold_Date2() 
UserForm1.Show vbModeless 
End Sub 

その後bold_date2()を実行します。

enter image description here

0

私はあなたがユーザーから入力を受け取り、単一のセルだけが提供されると仮定していることを理解します。また、選択したセルの値を取得し、フォントスタイルを太字に設定する必要があります。

まず、選択したセル参照を取得し、Fontプロパティを使用してフォントスタイルを設定し、そのコンテンツを取得するためのValueプロパティを読み込みます。

Set sDate = Application.InputBox(Prompt:= _ 
      "Please select start date.", _ 
       Title:="Start Date", Type:=8) 

    sDate.Font.Bold = True 
    MsgBox ("Selected cell's value is: " & sDate.Value) 
+0

私は実際に入力ボックス内でクリックしたものを表示したいだけのメッセージボックスを出力したくありません。私はあなたが説明したことを理解しており、それをそうしようとする人にとっては意味があります。 –

+0

これで問題は何ですか? MsgBoxを使用することで、セルから値を得る方法、つまり 'sDate.Value'を表示しようとしました。 –

0

これはどのように機能しますか?

Sub bold_Date() 
Dim sDate As Range 
On Error Resume Next 
Application.DisplayAlerts = False 
Set sDate = Application.InputBox(Prompt:="Please select start date.", Title:="Start Date", Type:=8) 

If sDate.Cells.Count > 1 Then Set sDate = sDate.Cells(1, 1) 
MsgBox ("Date is: " & sDate.Text) 

Application.DisplayAlerts = True 

If sDate Is Nothing Then 
    Exit Sub 
Else 
    sDate.Font.Bold = True 
End If 
End Sub 

範囲を選択した後、日付付きのメッセージボックスを挿入します。また、複数のセルをチェックしています。複数のセルが選択されている場合は、その範囲内の最初のセルが新しいsDateとして使用されます。

+0

ありがとう、しかし、私はちょうどユーザーが入力ボックスの中でクリックしたものを置くことを試みている、それは既にそれを行うが、それは入力ボックス内のフォーマットが間違っています。 –

+1

@AngatvirSanghera - AFAIKは、 'InputBox'では不可能です。あなたはそれをuserformで行うことができるかもしれません。 – BruceWayne

関連する問題