【VBA】Sheet名を取得する方法

目次

はじめに

今回は、VBAでシート名(Sheet名)を取得する方法について勉強しました。
使用環境は以下のとおりです。

  • 使用OS: Windows 10 Pro
  • バージョン: 20H2

背景

本来は、VBAを使ってファイル名を取得しようと試みましたが、うまくいきませんでした。
ただ、今回扱ったExcelファイルは、ファイル名とシート名が一致しているものだったため、代替手段としてシート名を取得する方法を試してみました。

実際のコード

以下のようにしてシート名を取得できました。

Dim sheetname As String

sheetname = Worksheets(1).Name
sheetname = Left(sheetname, 2)

コードの解説

1行目:変数sheetnameを宣言しています。文字列型(String)です。

2行目:Worksheets(1).Nameを使って、左から1番目にあるシートの名前を取得し、sheetnameに代入しています。
なお、ここで指定している「1」は、シートの順番を表しています。たとえば、3番目のシート名を取得したい場合は「3」と記述します。

3行目:Left関数を使用し、シート名の左から2文字だけを取り出しています。
このように、Left関数を使うことで、シート名の一部だけを簡単に取得できます。

さらに応用

  • Mid関数を使う場合:
Mid(sheetname, 4, 2)

これは、4文字目から2文字分を取得することができます。

  • Right関数を使う場合:
Right(sheetname, 3)
  • これは、右端から3文字分を取り出すことができます。

このように、文字列操作を組み合わせれば、シート名の一部を柔軟に取り出すことが可能です。

今後について

今回の方法で、シート名から必要な情報を取得することはできました。
しかし、本来の目的は、Excelファイル自体のプロパティからファイル名を取得することだったため、
今後は、WorkbookオブジェクトFileSystemObjectを利用した、ファイル名取得方法についても勉強していきたいと考えています。

まとめ

  • Worksheets(1).Nameで、左から1番目のシート名を取得できる。
  • LeftMidRight関数を使えば、取得したシート名の一部分を抽出できる。
  • シート名がファイル名と一致している場合の代替手段として有効。

次のステップでは、ファイルプロパティから直接ファイル名を取得する方法にも挑戦していきたいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次