プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000のVBAについて質問です。
シート内に記入した、件名と年月を、ファイル名とするには、どうすれば良いでしょうか?
セルA1に件名「○○○の件」
セルB1に作成日が日付書式で「2009/12/07」 と、あるとします。
この入力情報を元にして「○○○の件(0912).xls」と言うファイル名で保存したいです。
更に欲を言うと、件名にファイル名での禁則文字(/や?など)が想定されますので、全部を全角に変換したいです。

現状は、シート内余白に
件名は「=JIS(A1)」で全角に変換。
年月は「=TEXT(B1,"yy")」と「=TEXT(B1,"mm")」で、それぞれ抽出して、
変数を定義して
ThisWorkbook.Path & "\" & 件名 & "(" & 年 & 月 & ")" & ".xls"
で、保存しています。

このシート内の関数を止めて、VBAの中だけで処理する知恵をお貸し下さい。
お願い致します。

A 回答 (5件)

#1です。



>今日が12月でも、B1に書かれているのが11月ならば0911としたいです。
ThisWorkbook.Path & "\" & StrConv(Range("A1").Value,vbWide) & "(" & Format(Range("B1").Value ,"yymm") & ")" & ".xls"
ですね。
    • good
    • 0
この回答へのお礼

重ね重ね早速のご回答ありがとうございます。
最初に頂いたご回答で、応用が利けば出来るだろうにと思われたかも知れませんが、ご親切にありがとうございました。

上記のご回答でバッチリ動きました。ありがとうございました。

お礼日時:2009/12/07 16:00

(1)手操作


(2)VBA
ファイル名をセルの値と関連付けてファイル名にすることはできない
はず。文字列ベースのコピペは別として)
だから(2)によらざるをえない。
件名の文字を全角に統一するのはStrconvのvbWideを使えば良い。
年、月はYear、MonthというVBの関数で半角数値や文字列はわかる。半角数値も&で結合すると文字列になる。
これも全角で統一するのかどうか質問に書いてないね。

件名&年&月全体をStrconvで全角かする手もある。
年、つき部分を半角文字列にするならFormat関数でできる。
ーーー
Googleででも「Strconv関数」「Format関数」で照会すれば、直ぐ内容はわかる。
TEXT-->Format関数(VB)
JIS-->Strconv関数(VB)
が対応。
年月はYear、Month関数。(VB)
    • good
    • 0
この回答へのお礼

ありがとうございました。
2~3日色々と調べ悩んだんですけど、現状は....の方法しか思い付かずに
この場に質問させて頂きました。
知識の豊富な皆様方は直ぐに分かる様な簡単な事だったかも知れませんが、
ちょっとした改善でたまにVBAを使用する私にとっては、やりたい事がどの関数で
出来るのか判断するのも難しいです。
今回、皆様方に教えて頂きました、FormatやStrConvも初めて知りましたので
大変勉強になりました。
今後も別件にて、簡単なことかも知れませんが、質問させて頂く事があるかと
思いますが、また、宜しくお願い致します。

お礼日時:2009/12/08 11:03

すみません。


打ってる間にかぶってしました^^;
    • good
    • 0

こんにちは。


Format(date,"yymm")

Format(Range("B1").Value, "yymm")
で動きます^^
    • good
    • 0
この回答へのお礼

ありがとうございました。
今後もお願い致します。

お礼日時:2009/12/07 16:03

ThisWorkbook.Path & "\" & StrConv(Range("A1").Value,vbWide) & "(" & Format(date,"yymm") & ")" & ".xls"



かな?(未検証ですが。。。)
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

件名のA1を全角でファイル名に出来ました。

年月ですが、Format(date,"yymm") ですと、今日の年月が入りました。
今日の年月ではなくて、B1に書かれている年月を取り込みたいのですが。
今日が12月でも、B1に書かれているのが11月ならば0911としたいです。

可能でしょうか?

お礼日時:2009/12/07 14:46

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