Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4733 / 13644 ツリー ←次へ | 前へ→

【54775】チェックボックスの値 はづき 08/3/29(土) 11:34 質問[未読]
【54779】Re:チェックボックスの値 n 08/3/29(土) 17:02 発言[未読]
【54787】Re:チェックボックスの値 n 08/3/30(日) 2:03 発言[未読]
【54813】Re:チェックボックスの値 はづき 08/3/31(月) 12:49 お礼[未読]
【54814】Re:チェックボックスの値 n 08/3/31(月) 12:57 発言[未読]
【54815】Re:チェックボックスの値 n 08/3/31(月) 13:28 発言[未読]
【54845】Re:チェックボックスの値 はづき 08/4/1(火) 17:53 お礼[未読]

【54775】チェックボックスの値
質問  はづき  - 08/3/29(土) 11:34 -

引用なし
パスワード
   すみません、質問させてください。
複数のコントロールチェックボックスの値(on,off)を、指定したセルに表示させたいです。
この動作を複数のファイルを対象に行いたい場合、どういったマクロになるでしょうか。

Sub Macro1()
Dim ファイル名 As Variant
Dim ブック As Workbook
Dim i As Integer

ファイル名 = Application.GetOpenFilename("エクセルファイル,*.xls", MultiSelect:=True)
If VarType(ファイル名) = vbBoolean Then Exit Sub
Application.EnableEvents = False

For i = 1 To UBound(ファイル名)
  Set ブック = Workbooks.Open(ファイル名(i))
  With ThisWorkbook.Worksheets(1)
    
  ActiveSheet.Shapes("Check Box 29").Select
  With Selection
    .Value = xlOff
    .LinkedCell = "D24"
    .Display3DShading = False
  End With


  End With
  
  ブック.Save
ブック.Close
Next
  Application.EnableEvents = True
  
End Sub

としたら、(当たり前ですが)すべて同じ値になってしまったので、
どうしたらonの場合はTrue、ofの場合はFalesと出来るのでしょうか?
ご教授よろしくお願いします。

【54779】Re:チェックボックスの値
発言  n  - 08/3/29(土) 17:02 -

引用なし
パスワード
   こんにちは。
.Value = 0 - (4145 + .Value) でもいいけどわかりにくいので
>.Value = xlOff
.Value = IIf(.Value = xlOn, xlOff, xlOn)
や、If...Then...Else ステートメント を使ってください。

それより、
>ActiveSheet.Shapes("Check Box 29").Select
のActiveSheetはSetした[ブック]のファイルのSheetですか?
そこには必ず "Check Box 29" という名前のCheckBoxがあるのでしょうか。
その点が、少し不安定な処理のような気もします。

【54787】Re:チェックボックスの値
発言  n  - 08/3/30(日) 2:03 -

引用なし
パスワード
   んぁ?
>どうしたらonの場合はTrue、ofの場合はFalesと
...完全に読み間違ってました、ごめんなさいorz

『onの場合はTrue』なら、LinkedCell を設定していたら
何もしなくていいのでわ...?

【54813】Re:チェックボックスの値
お礼  はづき  - 08/3/31(月) 12:49 -

引用なし
パスワード
   ▼n さん:
>『onの場合はTrue』なら、LinkedCell を設定していたら
>何もしなくていいのでわ...?

返信ありがとうございます!
元々セルにリンクしてないものを、マクロでリンクさせたかったのです。
説明不足ですみません・・・

【54814】Re:チェックボックスの値
発言  n  - 08/3/31(月) 12:57 -

引用なし
パスワード
   >>ActiveSheet.Shapes("Check Box 29").Select
>のActiveSheetはSetした[ブック]のファイルのSheetですか?
>そこには必ず "Check Box 29" という名前のCheckBoxがあるのでしょうか。
が相変わらずわかりませんが

>元々セルにリンクしてないものを、マクロでリンクさせたかったのです。
...だけなら
ActiveSheet.CheckBoxes("Check Box 29").LinkedCell = "D24"

【54815】Re:チェックボックスの値
発言  n  - 08/3/31(月) 13:28 -

引用なし
パスワード
   度々失礼...orz
初期値が xlOff の場合は LinkedCell 設定時に False と表示されないという話ですね。

With ActiveSheet.CheckBoxes("Check Box 29")
  .LinkedCell = "D24"
  .Parent.Range("D24").Value = (.Value = xlOn)
End With

【54845】Re:チェックボックスの値
お礼  はづき  - 08/4/1(火) 17:53 -

引用なし
パスワード
   ▼n さん:
何度もありがとうございます!

>With ActiveSheet.CheckBoxes("Check Box 29")
>  .LinkedCell = "D24"
>  .Parent.Range("D24").Value = (.Value = xlOn)
>End With

これで出来ました!!助かりました!
ご丁寧にありがとうございました。

4733 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free