エクセルのシート名に空白が入っていた時の対応

いつも大変参考にさせていただいております。

表題の件、エクセルのシート名に半角(全角)スペースが入っているときの対応方法についてご教授ください。

毎月最初の平日のシート名(20200401など)のエクセルデータを使用するのですが、その際空白が入っているとシート名が見つからないというエラーが出てきてしまいます。必ず1日であればトライ&エラーを使用して空白も含まれる場合のリトライを行えばよいのですが、1日が土日の場合翌日以降のシートを探さなければいけないため、そちらを探す処理でトライ&エラーを使用してしまっております。

そこであらかじめ空白が含まれるかもしれない場合のシート名の良い指定方法はありますでしょうか。(そもそも絶対にシート名に空白が含まれないように気をつけるのが一番ですが・・・)

わかりにくい文章で申し訳ございません。。。

よろしくお願いいたします。

エクセルシート名に空白が含まれる場合.zip (24.2 KB)

文章が分かりにくくなってしまったため、サンプルファイルを添付させていただきます。
testファイルのシート名が「20200302 」(半角/全角スペースあり)になってもセルを読み込めるようになりますでしょうか。

よろしくお願いいたします。

こんにちは

やり方はいくつかあるかと思いますが、一例として以下のような感じになるかと思います。

シート名のリストを取得して、それをFor Eachで回す。そのループの中で全角・半角を除去したものと、対象日付を比較して合致すればその除去前の文字列が対象のシート名になります。

ありがとうございます!!

シート名をリストとして取得ですか、試してみます!

ちなみにワイルドカード(*)はエクセルのシート名を選択するさいには使用できないのでしょうか?

こんにちは

シート名を直接指定するケースでは一意に名前を指定する必要がありますので、ワイルドカードといった複数個結果がありうる表現は使用できないケースが多いです。

検索する際の他のメソッドで使用するケースはあるかもしれませんが、VB.netではワイルドカードで指定するメソッドは少ないと思います。

遅くなってしまい申し訳ございません。

おしえていただいた方法を参考にさせていただき、フローを作ることができました!

_エクセルシート名に空白が含まれる場合.zip (24.8 KB)
(私のこの作り方でよいのかは少々不安ですが、、、汗)

また、ご質問にも回答いただきありがとうございました。
どんな場合でもワイルドカードが使用できるわけではないのですね。
勉強になりました。ありがとうございました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.