Excel VBA質問箱 IV

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

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


7375 / 13645 ツリー ←次へ | 前へ→

【39505】selectionのエラー クマ 06/6/25(日) 21:32 質問[未読]
【39507】Re:selectionのエラー かみちゃん 06/6/25(日) 22:00 発言[未読]
【39510】Re:selectionのエラー クマ 06/6/25(日) 22:22 質問[未読]
【39513】Re:selectionのエラー クマ 06/6/25(日) 22:44 質問[未読]
【39514】Re:selectionのエラー かみちゃん 06/6/25(日) 22:57 発言[未読]
【39515】Re:selectionのエラー クマ 06/6/25(日) 23:22 お礼[未読]
【39516】Re:selectionのエラー かみちゃん 06/6/25(日) 23:29 発言[未読]
【39517】Re:selectionのエラー クマ 06/6/25(日) 23:38 発言[未読]
【39518】Re:selectionのエラー クマ 06/6/26(月) 0:00 お礼[未読]

【39505】selectionのエラー
質問  クマ  - 06/6/25(日) 21:32 -

引用なし
パスワード
   順調に動いていたと思っていたマクロが
Private Sub Workbook_Open()
 Workbooks("book1").Activate
 ActiveWindow.Visible = False
End Sub
をThisWorkbookに付け加えたら
UserForm1の
Sheets("処理シート").Select ←ここでエラーが出てしまいます

見えないブックの中身はselectできないのですか?
("処理シート"と"印刷シート"をselectで切り替えていました)

ご指示のほど、宜しくお願いします


【39507】Re:selectionのエラー
発言  かみちゃん  - 06/6/25(日) 22:00 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Sheets("処理シート").Select ←ここでエラーが出てしまいます
>
>見えないブックの中身はselectできないのですか?

一般操作で非表示になっているシートを選択することができますか?
非表示になっているので、選択のしようがありませんよね?
それと同じです。
つまり、非表示になっているシートはSelectできません。

Sub test()
 Dim ws As Worksheet
 
 Set ws = Sheets("Sheet1")
 If Not ws.Visible Then
  MsgBox ws.Name & "は非表示のため選択できません"
 Else
  ws.Select
 End If
End Sub

Selectして何をしたいのかわかりませんが、アクティブにしたいだけならば、
Sheets("処理シート").Select
ではなく、
Sheets("処理シート").Activate
ではいけませんか?

【39510】Re:selectionのエラー
質問  クマ  - 06/6/25(日) 22:22 -

引用なし
パスワード
   こんにちは、かみちゃんさん 回答ありがとうございます

>つまり、非表示になっているシートはSelectできません。
なるほど
初めて非表示に挑戦したので気がつきませんでした・・・


>Selectして何をしたいのかわかりませんが、アクティブにしたいだけならば、
>Sheets("処理シート").Select
>ではなく、
>Sheets("処理シート").Activate
>ではいけませんか?

処理シート・印刷シート・UserForm1〜2でセルや変数の値のやりとりをしています
これが1本目のVBAで、試行錯誤しています

  Sheets("処理シート").Select
  Range("A9").Value = SS1Path
とか
  Sheets("処理シート").Select
  myDel = Range("A11").Value
  Range("G13").Activate
  For i = 1 To myDel
    ActiveCell = ""
    Selection.Offset(0, 1).Select
    ActiveCell = ""
    Selection.Offset(0, 1).Select
    ActiveCell = ""
    Selection.Offset(0, 1).Select
    ActiveCell = ""
    Selection.Offset(1, -3).Select
  Next i
    Range("E13", "E17").Value = ""
みたいに使ってます

全部activeに書き換えてみます
(activeとselectの使い分けが分からなかったんです)

【39513】Re:selectionのエラー
質問  クマ  - 06/6/25(日) 22:44 -

引用なし
パスワード
        Sheets("処理シート").Activate
に変更したけれど、おなじエラーが出てしまいました

Activateも非表示だと使えないのかな?

あと
   Selection.Offset(0, 1).Select

   Selection.Offset(0, 1).Activate
にしたけれど、これって文法的に正しいんでしょうか? 

【39514】Re:selectionのエラー
発言  かみちゃん  - 06/6/25(日) 22:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>     Sheets("処理シート").Activate
>に変更したけれど、おなじエラーが出てしまいました

新規ブックでSheet1を非表示にして、以下の2つのマクロを実行してみてください。
Test1はエラーになりますが、Test2はエラーになりません。
Excel2002で確認しています。

Sub Test1()
 Dim ws As Worksheet
 
 Set ws = Sheets("Sheet1")
 If Not ws.Visible Then
  MsgBox ws.Name & "は非表示のため選択できません"
  ws.Select
  MsgBox ActiveSheet.Name
 Else
  ws.Select
 End If
End Sub

Sub Test2()
 Dim ws As Worksheet
 
 Set ws = Sheets("Sheet1")
 If Not ws.Visible Then
  MsgBox ws.Name & "は非表示のため選択できません"
  ws.Activate
  MsgBox ActiveSheet.Name & "はアクティブですが非表示です"
 Else
  ws.Select
 End If
End Sub

>   Selection.Offset(0, 1).Select
>を
>   Selection.Offset(0, 1).Activate
>にしたけれど、これって文法的に正しいんでしょうか? 

SheetのSelectとはまた別かと思いますし、その部分は変えなくてもいいのではないでしょうか?
私は、あまり気にしたことがありません。

【39515】Re:selectionのエラー
お礼  クマ  - 06/6/25(日) 23:22 -

引用なし
パスワード
   確かにtest1()でエラーがでて、test2()では正常に作動しました

ということは、bookを非表示にせずに、2枚(しかない)のsheetを非表示にして
アクティブで切り替えれば僕のも作動するかもしれませんね
夜遅くまでありがとうございました

修正して動かしてみることにします(明日、結果を報告します)

あと、しょ〜もない質問なんですが
他←これってどれを選べばいいんでしょうか?
「回答」「発言」「質問」「お礼」しか選べないんですが・・・

【39516】Re:selectionのエラー
発言  かみちゃん  - 06/6/25(日) 23:29 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>他←これってどれを選べばいいんでしょうか?
>「回答」「発言」「質問」「お礼」しか選べない

「回答」…答
「発言」…他
「質問」…問
「お礼」…礼
です。

【39517】Re:selectionのエラー
発言  クマ  - 06/6/25(日) 23:38 -

引用なし
パスワード
   なるほど、発言でしたか!!

ちなみに「すべてのシートを非表示にできません」ってExcelに叱られました・・・


あと、bookを非表示にするとTest2()もエラーになりました

Sub test2()
Dim ws As Worksheet

 Set ws = Sheets("Sheet1") ←ここでエラー
 If Not ws.Visible Then
  MsgBox ws.Name & "は非表示のため選択できません"
  ws.Activate
  MsgBox ActiveSheet.Name & "はアクティブですが非表示です"
 Else
  ws.Select
 End If
End Sub
Sub 非表示()
ActiveWindow.Visible = False
End Sub

formだけで作動させるのはムリなのかなあ???

【39518】Re:selectionのエラー
お礼  クマ  - 06/6/26(月) 0:00 -

引用なし
パスワード
   Sub test1()
Dim ws As Worksheet

 Set ws = Workbooks("book1").Sheets("Sheet1")
 If Not ws.Visible Then
  MsgBox ws.Name & "は非表示のため選択できません"
  ws.Activate
  MsgBox ActiveSheet.Name & "はアクティブですが非表示です"
  Range("A1").Value = "kuma"
 Else
  ws.Select
  Workbooks("book1").Sheets("Sheet1").Activate
  Range("A2").Value = "kuma" 
 End If
End Sub

これで「kuma」が書き込みされました
bookを非表示にしただけではsheetは非表示にならないみたいで
Elseに制御がうつってました

これでなんとかなりそうです
本当にありがとうございました

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