過去ログ

                                Page     862
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼チェックボックスの操作  samba 03/3/11(火) 11:16
   ┗Re:チェックボックスの操作  つん 03/3/11(火) 11:25
      ┗Re:チェックボックスの操作  samba 03/3/11(火) 12:43
         ┗Re:チェックボックスの操作  つん 03/3/11(火) 13:10
            ┗Re:チェックボックスの操作  samba 03/3/11(火) 13:34
               ┗Re:チェックボックスの操作  つん 03/3/11(火) 13:38
                  ┗Re:チェックボックスの操作  samba 03/3/11(火) 13:48
                     ┗Re:チェックボックスの操作  つん 03/3/11(火) 13:55
                        ┗Re:チェックボックスの操作  samba 03/3/11(火) 14:16
                           ┗書く場所が・・・  つん 03/3/11(火) 14:34

 ───────────────────────────────────────
 ■題名 : チェックボックスの操作
 ■名前 : samba
 ■日付 : 03/3/11(火) 11:16
 -------------------------------------------------------------------------
   はじめまして。
任意のセルの内容に応じて、コントロールのチェックボックスのON・OFFを操作したいのですが、適切な記述がわかりません。
たとえば、A1セルにテキスト文字列"○"がある場合、
CheckBox1をON(TRUE)にしたい場合、

if range(A1) = "○" then CheckBox1 =True

これでは駄目なのでしょうか?
初歩的な質問でお恥ずかしいのですがアドバイス願います。
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/3/11(火) 11:25  -------------------------------------------------------------------------
   samba さん
はじめまして。こんにちは

>if range(A1) = "○" then CheckBox1 =True

Range("A1")・・・A1をダブルコーテーションで囲んでないから
エラーが出るんやと思います。
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : samba  ■日付 : 03/3/11(火) 12:43  -------------------------------------------------------------------------
   >>if range(A1) = "○" then CheckBox1 =True
>
>Range("A1")・・・A1をダブルコーテーションで囲んでないから

じつは、

Dim a As String
a = Cells(1, 1).Value

と変数を定義してから、

If a = "○" Then CheckBox1 = True

と記述しておりました。
これを実行すると、
特にエラーメッセージは表示されないのですが、
Then 以降の部分が実行されません。
当然、チェックボックスもチェックされません。

よろしくお願いいたします。
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/3/11(火) 13:10  -------------------------------------------------------------------------
   >Dim a As String
>a = Cells(1, 1).Value
>
>と変数を定義してから、
>
>If a = "○" Then CheckBox1 = True

こちらで、そのままコピペして実行してみましたが、
とりあえず、CheckBox1にチェック入りましたよ。

どういう状況でされてるのでしょうか?
こちらは、ユーザーフォームにチェックボックスを配置して、
Initializeイベントに書いてみましたが・・・
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : samba  ■日付 : 03/3/11(火) 13:34  -------------------------------------------------------------------------
   >どういう状況でされてるのでしょうか?
>こちらは、ユーザーフォームにチェックボックスを配置して、
>Initializeイベントに書いてみましたが・・・

ユーザフォーム上ではなく、ワークシート上にチェックボックスを配置しております。
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/3/11(火) 13:38  -------------------------------------------------------------------------
   >ユーザフォーム上ではなく、ワークシート上にチェックボックスを配置しております。

そうですか・・
では、どういうタイミングでマクロを実行させてますか?
ブックを開いたときとか・・・・?
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : samba  ■日付 : 03/3/11(火) 13:48  -------------------------------------------------------------------------
   ▼つん さん:
>>ユーザフォーム上ではなく、ワークシート上にチェックボックスを配置しております。
>
>そうですか・・
>では、どういうタイミングでマクロを実行させてますか?
>ブックを開いたときとか・・・・?

「マクロを実行」で実行させております。
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/3/11(火) 13:55  -------------------------------------------------------------------------
   >「マクロを実行」で実行させております。

ああ、そうか・・・
でしたら、

Sub test()

  Dim a As String
  
  a = Cells(1, 1).Value
  
  If a = "○" Then
    Worksheets("Sheet1").CheckBox1 = True
  Else
    Worksheets("Sheet1").CheckBox1 = False
  End If

End Sub

これでいかがですか?
 ───────────────────────────────────────  ■題名 : Re:チェックボックスの操作  ■名前 : samba  ■日付 : 03/3/11(火) 14:16  -------------------------------------------------------------------------
   ありがとうございます!
うまくいきました!

マクロ実行で動作させる点がポイントだったのでしょうか?
 ───────────────────────────────────────  ■題名 : 書く場所が・・・  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 03/3/11(火) 14:34  -------------------------------------------------------------------------
   うまくいったようで、よかったです♪

>マクロ実行で動作させる点がポイントだったのでしょうか?

いや・・あれで、上手く行ったのなら、

Worksheets("Sheet1").CheckBox1 = True
  ↑この太字にした部分がポイントだと思います。

おそらく「標準モジュール」に書かれてたと思うのですが、
その場合、どこにあるコントロールか?ちゅーことを明記してやらないとダメです。
上記のように・・・
Sheet1上にあって、そのSheet1のモジュールに書くなら、
そのまま「CheckBox1」でOKですけどね。

おそらく、そういうことが問題やったのだと思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 862