dポイントプレゼントキャンペーン実施中!

自身のファイル名を、現在のシートのA1セルに表示させたいのですがどうすれば良いでしょうか?

ファイル名は、
〇〇〇〇.xlsm ですが、拡張子無しで、
〇〇〇〇 と表示させたいです。
またその時、フォントをMeiryo UI、サイズを18にしたいです。

マクロで他の処理も行っているので、マクロ内のどこかに挿入して使えると助かります。
よろしくお願いいたします。

A 回答 (3件)

>InStrRev(ThisWorkbook.Name, "分") - 1) とすれば、


【決定稿】5月 になるのは分かるのですが前方を削る場合もあるので
できたら知りたいです。
Left(ThisWorkbook.Name, _
InStrRev(ThisWorkbook.Name, ".") - 2) でも【決定稿】5月となりますね


参考サイトは広告があり少し分かり難いかも知れませんでしたが読まれましたでしょうか

4パターンサンプルを書きます。意味は確認しながら試してください。
おいおいと言う感じのものもありますが参考まで
ちなみに期待する値を取得するやり方は他にもあると思います

strName = ThisWorkbook.Name

= Replace(Left(strName, InStrRev(strName, ".") - 2), "【決定稿】", "")

= Mid(Left(strName, InStrRev(strName, ".") - 2), Len("【決定稿】") + 1, 2)

= Left(Mid(strName, InStr(strName, "】") + 1), InStr(Mid(strName, InStr(strName, "】") + 1), "分") - 1)

= Split(Left(strName, InStrRev(strName, ".") - 2), "】")(1)
    • good
    • 0
この回答へのお礼

ありがとうございます!教えて頂いたリンク先も拝見しました。
Excel関数でいう、left,right,mid等を応用すれば色んな抽出ができますよね。
Excelで比較的自由に扱えるのですが、VBAになった途端、よく分からなくなってしまいます・・・
サンプルまで教えて頂いてありがとうございます。
やりたいことができました。すごいです。

お礼日時:2021/05/18 16:21

#1です


文字列の操作は文字数などやシンボルを探して演算する事が出来ます。
足し算引き算です。全体を右からシンボルまでを引けば左からシンボルまでが残ります。逆もしかりですね
文字列を操作できる関数は色々ありますので
申し訳ないのですが、参考サイトリンクを貼ります。
初めは分かり難いかも知れませんが
じっくり色々試して覚えるのが早道です。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/f …
    • good
    • 0

こんばんは


With Range("A1")
.Value = Left(ThisWorkbook.Name, _
InStrRev(ThisWorkbook.Name, ".") - 1)
.Font.Name = "Meiryo UI"
.Font.Size = 18
End With
    • good
    • 0
この回答へのお礼

ありがとうございます!
試してみたら質問通りの結果が得られました。

InStrRevで実現できるのですね。勉強になります。
ですがまだ使いこなせてません・・・

もし可能ならお願いします。
【決定稿】5月分.xls というファイル名だった時、

5月 を抽出するにはどうすれば良いですか?
InStrRev(ThisWorkbook.Name, "分") - 1) とすれば、
【決定稿】5月 になるのは分かるのですが前方を削る場合もあるので
できたら知りたいです。

お礼日時:2021/05/17 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています