Excel VBAコードで指定セルクリックでカレンダーを表示する方法

このQ&Aのポイント
  • Excel VBAコードを使用して、指定のセルをクリックするとカレンダーが表示される方法を教えてください。
  • ExcelシートのVBAコードには、A列のすべてのセルをクリックするとカレンダーが表示されるように記述されていますが、A1セルのみをクリックした場合にのみカレンダーを表示するには、どのようにコードを変更すればよいでしょうか?
  • ExcelのVBAコードを使用して、A1セルのみをクリックした場合にのみカレンダーが表示されるようにする方法を教えてください。
回答を見る
  • ベストアンサー

指定セルクリックでカレンダー表示

Excelsheet1VBAコードに下記に記載されておりA列全てのセルクリックでカレンダーが表示されますがA1セルクリックのみカレンダー表示するにはどのようにコードを変更すれば良いかお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 複数セル選択時は無視 If Target.Count <> 1 Then Exit Sub ' A列以外は無視(今回サンプルの例) If Target.Column <> 1 Then Exit Sub ' カレンダーフォームを起動する Call ShowCalendarFromRange(Target) End Sub

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 A1セルクリックのみカレンダー表示するには > If Target.Count <> 1 Then Exit Sub > ' A列以外は無視(今回サンプルの例) > If Target.Column <> 1 Then Exit Sub この代わりに、以下を入れればよいのではないでしょうか。 If Target.Address <> "$A$1" Then Exit Sub

kuma0220
質問者

お礼

ありがとうございます。 助かりました。

関連するQ&A

  • Excel2007のカレンダーコントロール

    Excel2007のカレンダーコントロールで質問します。 Private Sub Calendar1_Click() ActiveCell.Value = Calendar1.Value ActiveSheet.Calendar1.Visible = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$4" Then ActiveSheet.Calendar1.Visible = True End If End Sub この状態ですと、セルA4をクリックしたときだけカレンダーコントロールが表示されます。 A列をどこでもクリックしたときにカレンダーコントロールが表示されるようにするには どこを、どう変更すればよいのでしょうか? 教えてください。

  • excelでのカレンダーコントロールの設定について

    excelでカレンダーコントロールを設定しました。 ターゲットとしているセルが、結合セルなのですが、うまく表示されません。セルの結合を解除すればうまくいきます。 しかし、ターゲットのセルは結合させておきたいので、何か解決策はありますでしょうか? 以下、コードの内容です。 ■フォームコード Private Sub Calendar1_DblClick() ActiveCell.Value = Me.Calendar1.Value End Sub ■シートコード Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$6" And Target.Address <> "$A$13" And Target.Address <> "$A$20" And Target.Address <> "$A$27" Then Exit Sub UserForm1.Show End Sub

  • VBAでエラートラップがうまくいきません。

    VBAで次のようなプロシージャを実行してみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Target.Value = " " Then          ~コード~   END IF END SUB すると複数のセルが選択されるとエラーがでます。そこで次のようにしてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   On Error GoTo エラー処理   If Target.Value = " " Then     On Error GoTo 0           ~コード~   END IF   EXIT SUB エラー処理:   EXIT SUB END SUB ところがこれでもやっぱりIF文のところでエラーがでます。 当方初心者でなぜエラーがでるのかわかりません。 わかりやすくご教授ください。 よろしくお願いします。

  • マクロの疑問

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "A2" Then Range("A2").Select End If End Sub とすると、どのセルを選んでもA2に飛ぶのに、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "A3" Then Range("A2").Select End If End Sub とすると、A3を選んでも全く移動しないのはなぜでしょうか。 なにか落とし穴がありそうで。。。 よろしくお願いします。

  • VBAでIF関数の中の andの使用法について

    Excel2000でWindowsXP を使用している超初心者です。あるサイトに シートのA列のセルをクリックするとカレンダーが表示され、その日付をクリックすると、日付がそのA列のセルに挿入できるというものです。やっとの思いで完成しました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 複数セル選択時は無視 If Target.Count <> 1 Then Exit Sub ' A列以外は無視(今回サンプルの例) If Target.Column <> 2 Then Exit Sub ' カレンダーフォームを起動する Call ShowCalendarFromRange2(Target) End Sub しかし、自分のシートはA列だけでなく、13列目についても同様の動作が出来るようにしたいのです。 and を使ってもうまく13列目にカレンダーが現れてくれません。 一番上に 「複数セル選択時は無視」というスクリプトがあるから出来ないのでしょうか?もちろんこの条件は必須で除外したくないですが・・・。どなたか教えていただけませんか? なお、このマクロを導入したらR1C1表示に変わってしまいました。

  • 「Worksheet_Change」で2つの操作を

    お世話になります。 当方、エクセルの超初心者です。 仕事で、ある作業表の作成を任されたのですが、一部が思い通りに動作しません。 最初は「例1」のような記述によりエラーしました。 【例1】 Private Sub Worksheet_Change(ByVal Target As Range) (内容1) End Sub Private Sub Worksheet_Change(ByVal Target As Range) (内容2) End Sub その後、過去の回答にあった類似案件を参考に「例2」のように書き換えましたが、 実行されるのは1つ目のみで、2つ目の内容は無視され、困っております。 【例2】 Private Sub Worksheet_Change(ByVal Target As Range) (内容1) (内容2) End Sub ちなみに実データは以下の通りです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count <> 1 Then Exit Sub If Intersect(Target, Range("k6:k55")) Is Nothing Then Exit Sub If Target.Value = "" Then Target.Value = "○" Else Target.Value = "" If Target.Count <> 1 Then Exit Sub If Target.Column <> 2 Then Exit Sub If Target.Row < 6 Or Target.Row > 45 Then Exit Sub Call ShowCalendarFromRange2(Target) End If End Sub 見様見真似で作ったため、恥ずかしながら基本が全く理解できていません。 恐らく簡単なミスだと思うのですが、自力では解決方法を探し出せませんでした。 何とか2つの内容が実行できないものでしょうか。 どうか、お知恵をお貸し下さい。

  • メッセージボックスを表示させるエクセルマクロ

    こんにちは。マクロ初心者です。 エクセル(Excel2003)でメッセージボックスを 表示させるマクロが思うようにいかず困っています。 B列に「○○会社」と入力されれば、 「取引先です。」 とメッセージボックスを表示させたいと思い、 次のとおりマクロを作成しました。 -------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target Like "*会社" Then MsgBox "取引先です。" End If End Sub -------------------------------- しかし、コピーなどで複数のセルを貼り付ける(入力)行為をすると、 「実行エラー'13': 型が一致しません」と出てしまいます。 Worksheet_Change(ByVal Target As Range)を使っているので、 -------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column = 2 And Target Like "*会社" Then MsgBox "取引先です。" End If End Sub -------------------------------- と、「If Target.Count > 1 Then Exit Sub 」を入れれば、 メッセージは出なくなるのですが、 これだと、A列セルに、コピー&ペーストで複数セルを貼り付けた場合、 「○○会社」があっても、マクロが効いてきません。 複数セルの貼り付けにも対応させるには、 どのようにすればよろしいでしょうか? 基本的なところが理解できていないのだと自覚しておりますが、 どうかご教授願います。 長々とわかりづらい文章ですみません。よろしくお願いします。

  • セル横にカレンダーを表示、入力したい。

    教えて!goo に昨日登録し、初質問させていただく  gekkadokusyaku(月下独酌) と申します。 新参者をよろしくお願いします。 Excel2010で家計簿を作成中です。セル横にカレンダー表示して日付をクリック入力したいのですが、カレンダーを入力セル横に持ってくるにはどうしたらよいでしょうか。(カレンダーが画面中央に来てしまいます。)カレンダーはネット上からダウンロードしたものを使用しています。 下記のマクロが家計簿シートに記してあります。これに何か書き加えて希望のものができないでしょうか。 Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) '家計簿にカレンダー表示 If Target.Column = 1 Or Target.Column = 11 Or Target.Column = 21 Then If Target.Row >= 5 And Target.Row <= 65 Then frmCal.Show End If End If End Sub 以上よろしくお願いします。

  • SelectionChangeイベント 文字列エラ

    エクセルvbaなのですが セルをクリックしたときに、該当する値ならメッセージを表示させる際に Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Value = 1Then MsgBox "" End If End Sub ならエラーにならずに動くのに Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Value = "運賃" Then MsgBox "" End If End Sub のように文字列にすると、型が一致しません。 と言うエラーになります。 If Target.Value = "運賃" Then の時でも、空白セルや数値が入ったセルをクリックした際はエラーになりません。 どのような型にすればいいのでしょうか? 実際、「運賃」と言う値が入ってるセルをクリックしても同じエラーが発生します。

  • エクセルVBAについて

    エクセルVBAについて 下にある、1行目に入力された数値の、選択したセルの数値を、B5セルに表示させるマクロなのですが、1行目が結合していると、うまくB5セルに表示できません。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If Target.Count > 1 Then Exit Sub    '●複数セル選択は無視  If Target.Row <> 1 Then Exit Sub    '●1行目以外の選択は無視  If Target.Column > 6 Then Exit Sub   '●F列目以降の選択は無視  If Target.Value = "" Then Exit Sub   '●選択セルが未入力なら無視    Range("B5").Value = Target.Value End Sub このマクロで、結合しているセルをB5に表示させることはできますでしょうか? 1行目で選択するセルは、すべて2つのセルが結合しています。 よろしくお願いいたします。

専門家に質問してみよう