質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2042閲覧

VBA シート名 一部分 検索処理

Yoshikun_0945

総合スコア224

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/05/11 05:45

編集2017/05/11 05:59

#実現したいこと
ブック内の一番左のシート名の一部を取得し、変数の値と比較し、条件を満たしたら、変数の値を利用した新しいシートを一番左に作成しようとしています。
ネットにいい情報が出ていなかったので、わかる方がいらっしゃったら、ご回答お願いします。

##作成しているVBA
○Excel2010にてシフト表を作成しております。
○各月ごとに1シートを使用し、左(新月)⇒右(旧月)となっております。
○現在のシート名は、左から『17 5月』、『17 4月』というようになっております。
○17年6月を選択した時に、現在の一番左のシート名の月の半角数字にあたる5を取得し、6と比較をする
○6(選択月) > 5(シートが作成されている最新月)となるため、『17 6月』という名前で新しいシートを一番左に作成します。
なお、新しいシート名は選択している年を格納している変数、選択している月を格納している変数、半角空白、"月"を用いて新しいシートのシート名を指定します。
○比較をした時に、選択月 = 最新月、選択月 < 最新月となる場合は、シートの作成は実施いたしません。
わからないのはシート名を分解して一部分のみをstring変数に取得する方法です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2017/05/11 05:53

処理を列挙してありますが、この中でどれがわからないんですか?シート名の取得?シート名の分解?新しいシートの作成?
guest

回答1

0

ベストアンサー

追記ありがとうございました。
要は文字列の分解がわからないとのことで回答します。
やりかたはいくつかあると思いますが、簡単に思いついたのを2つ書いておきます。

VBA

1' 左端のシート名取得 2sn = Worksheets(1).Name 3 4' 固定位置で取得する場合 5Debug.Print Mid(sn, 4, Len(Mid(sn, 4)) - 1) 6 7' 分割して取得する場合 8ws = Split(sn, " ") 9ws2 = Split(ws(1), "月") 10Debug.Print ws2(0)

投稿2017/05/11 06:07

編集2017/05/11 06:08
ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問