Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
特定の文字を含まないシートをアクティブ
投稿日時: 18/06/12 11:47:55
投稿者: aiueoka

こんにちは。
 
特定の文字を含むものをアクティブはよくあるのですが、
含まないシートをアクティブにする場合、どのような式にすればいいのでしょうか?
 
よろしくお願いします。

投稿日時: 18/06/12 12:00:26
投稿者: aiueoka

ちなみにこちらは、「シート名で」ではなく「シートの中(セル)」が対象になります。

回答
投稿日時: 18/06/12 12:16:24
投稿者: mattuwan44

ども^^
回答を考えるまえに、2点確認しておきたいことがあります。
 
1)
エクセルVBAは、
関数を羅列するようなプログラム言語ではありません。
なので、「式」というような簡潔なものにまとまってません。
どのようなイメージで式とおっしゃっているのでしょうか?
 
2)
>特定の文字を含まないシートをアクティブ
該当するシートが複数あった場合はどうする?
該当するシートが無かった場合はどうする?
そういったことを考慮する必要があります。
その辺りはどう考えていますか?
 
よろしくお願いします。

回答
投稿日時: 18/06/12 12:45:36
投稿者: めんたん

とりあえず特定の文字を検索してヒットしなければ。。というコードにしたらよいかと
 
Dim WS As Worksheet
For Each WS In Worksheets
   If WS.Cells.Find("特定の文字", LookAt:=xlWhole) Is Nothing Then
       なにか処理
   End If
Next

投稿日時: 18/06/12 13:15:42
投稿者: aiueoka

@mattuwan44さん
 
 
お返事いただきありがとうございます。
  
1)
エクセルVBAは、
関数を羅列するようなプログラム言語ではありません。
なので、「式」というような簡潔なものにまとまってません。
どのようなイメージで式とおっしゃっているのでしょうか?
  
→こちらは言葉が出てこなかったためVBAのことを式と呼んでしまっただけですので
 深い意味はございません。
  
2)
>特定の文字を含まないシートをアクティブ
該当するシートが複数あった場合はどうする?
該当するシートが無かった場合はどうする?
そういったことを考慮する必要があります。
その辺りはどう考えていますか?
  
→それでしたら、2つのシート名を指定し、そのうちの「サンプル」という文字が含まれていない方を
 アクティブにするということは可能でしょうか
  
 確かに、サンプルと記載しているセルが空白の可能性はあります。
 サンプルと記載 または 空白
 というのは確実ですので、なかった場合というのが発生しない可能性があります。
 この場合でも、指定しなくてはいなくなるのでしょうか。
  
ご教示いただけますと幸いです。
  
よろしくお願いします。
 

投稿日時: 18/06/12 13:16:52
投稿者: aiueoka

@めんたんさん
 
お返事いただきありがとうございます!
 
参考にさせていただきやってみます!

回答
投稿日時: 18/06/12 14:16:08
投稿者: mattuwan44

 >→こちらは言葉が出てこなかったためVBAのことを式と呼んでしまっただけですので
 >深い意味はございません。

了解です。
 
>→それでしたら、2つのシート名を指定し、そのうちの「サンプル」という文字が含まれていない方を
> アクティブにするということは可能でしょうか

いや、屁理屈に聞こえると思いますが、
新規ブックでマクロを実行した場合、
どのシートにもサンプルという文字はないので、
その時はどのシートがアクティブになればよいのですか?
エクセルではいずれかのシートがアクティブにならなければいけません。
どのシートにもなければ、今アクティブのシートがそのままアクティブでいいのですか?
 
また、単一ウィンドウでは2つのシートをアクティブにすることもできません。
複数あるときは、その時はどうするのですか?
 
>確かに、サンプルと記載しているセルが空白の可能性はあります。
意味が解りません。
記載してあるのに空白。
どういう意味ですか?
いずれかのセルに記載してあるか記載されてないかが判断基準じゃないのですか?
もしかして、各シートの決まったセルをみればいいのですか?
 
サンプルと書いてないシートならどれでもいいよという事ならそういうことを、
明文化してほしいなぁと思います。
つまり、考えてから、あとで次々とそういうつもりじゃなかった、
という条件を出されても困るという話です。
どれにもなかったら、
左のシート優先なのか今アクティブなシートが優先なのかはたまたどれなのか?
複数あれば、
いまアクティブであれば、そのままでいいのか、左側優先でアクティブにするのか、
またはその他なのか。
 
あと、変なこと言われましたよね。
>2つのシート名を指定し、
これはたとえ話か実際にプログラムの中にこういうことを盛り込むのか。
 
こういう、事前にわかる不都合は、とりあえず考慮して考えておきたいなと思うのですが。

トピックに返信