「タイトル」欄は、本来は手入力する部分ですが、「名前を付けて保存」したときのファイル名が自動的にセットされる方法はありますか?
例えば「2001年4月売上明細.xls」ならば「2001年4月売上明細」となってほしいです。
WORD及びPPTはそうなりますが、EXCELは空白となってしまいます。
また、登録済みファイルを呼び出したあと、名前を変えて保存するときは、タイトルもその新しいファイル名に塗り変わってほしいです。WORD、PPTも前のままとなります。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

回答ないようなので、作ってみました。


以下のマクロを個人マクロブックに登録して使ってみてください。

#Excelの名前を付けて保存と同じような機能で、プロパティを埋める
というマクロです。

Sub savewithTitleProperty()

Dim fname, prpTitle As String

fname = Application.GetSaveAsFilename(initialfilename:=fname, _
fileFilter:="Microsoft Excel ブック (*.xls), *.xls", _
Title:="ファイル名を付けて保存")

prpTitle = fname
While InStr(prpTitle, "\") <> 0
prpTitle = Right(prpTitle, Len(prpTitle) - InStr(prpTitle, "\"))
Wend
prpTitle = Left(prpTitle, Len(prpTitle) - 4)

ActiveWorkbook.BuiltinDocumentProperties(1) = prpTitle
ActiveWorkbook.SaveAs FileName:=fname

End Sub
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QPPT2007の【図形の効果→面取り→丸】と同じ効果を、PPT2002で付ける事はできますか?

こんにちは、みなさん!!

【質問】
PPT2007の【図形の効果→面取り→丸】と同じ効果を、PPT2002で付
ける(効果を付ける)事はできますか?

Aベストアンサー

PPT2002単独で写真の面取り(丸)をするには、オートシェイプの角丸四角形の塗りつぶしに写真を使います。

「オートシェイプの塗りつぶしに写真を入れる方法」
http://homepage3.nifty.com/cbx2/pc/wo002.htm

Officeの付属ソフトの「Photo Editor」で予め写真の面取りした写真を挿入する方法も可能です。

「フォトエディタの使い方(I)」
http://owlnet.sub.jp/senior/main/photoeditor1.htm

Qエクセルでデータ.xlsから1行毎に元シート.xlsへコピーし1行毎に多数ファイルを作成したい。

現在、以下のような繰り返し作業をカット&ペーストで何度も行わないといけません。
手が疲れて困っています。
エクセルマクロで簡単にできる方法を教えてください。

以下の例のようにデータ.xlsは、一番上の行に元シート.xlsに差込む位置、
次の行から1行ごとのデータがあります。

データ.xls
A B C D E F
1 A2 A3 B3 C2 D2 D3 <- 元シート.xlsにコピーする位置
2 test 123 456 789 012 345
3 test2 456 789 012 345 678
4 test 456 123 789 012 345
...

元シート.xlsは固定文字や罫線等があります。

元シート.xls
A B C D
1 ------------------------------
2
3
4 abcdefg 9876543
5 ------------------------------

元シート.xlsに、データ.xlsの1行ごとのデータを、指定したセルに入れ、
A列の名前で多数のファイルを作成したいのです。
ただし、A列で同じファイル名がある時は、ファイル名の後に_2等を付けて保存したいのです。

以下のような多数のファイルを自動的に作成する方法を教えて下さい。
宜しくお願い致します。

test.xls
------------------------------
test 789 012
123 456 345
abcdefg 9876543
------------------------------

test2.xls
------------------------------
test2 012 345
456 789 678
abcdefg 9876543
------------------------------

test_2.xls
------------------------------
test2 789 012
456 123 345
abcdefg 9876543
------------------------------
...

現在、以下のような繰り返し作業をカット&ペーストで何度も行わないといけません。
手が疲れて困っています。
エクセルマクロで簡単にできる方法を教えてください。

以下の例のようにデータ.xlsは、一番上の行に元シート.xlsに差込む位置、
次の行から1行ごとのデータがあります。

データ.xls
A B C D E F
1 A2 A3 B3 C2 D2 D3 <- 元シート.xlsにコピーする位置
2 test 123 456 789 012 345
3 test2 456 789 012 345 678
4 test 456 123 789 012 345
...

元シート...続きを読む

Aベストアンサー

丸投げに当るので、原型のみです。
上の例のtest_2.xlsのA1セルはtestが正しいと解釈して作成しています。
その他不明な部分は適当に仮定しています。(原型なので問題ないでしょう。)

・データの整合性等のチェックは一切省いていますので、実際の使用では各種のチェックを入れておかないと即エラーになります。(データが想定と違う場合)
・変数の宣言は省略して名前のみにしてありますが、実際はタイプを指定しておいたほうが良いでしょう。
・元シート.xlsおよび作成されるファイルは同じフォルダにあるものとしています。
・データ.xlsからのコピーはコピーメソッドで行っていますので、書式などもそのままコピーされます。
 (もし式が入力されている場合は、参照がおかしくなることがあり得ます)
・元データのデータ有無に関わらず、データシートのデータを上書きするようにしています。

データ.xlsがアクティブな状態で実行されるものと仮定しています。
(シート名、ブック名などは仮設定です)
適宜、修正してご使用ください。

Sub test()
Dim dst_name, mbk_name, mst_name, bk_name, b_name
Dim dst, mbk, mst
Dim ad, p, i, j

p = ThisWorkbook.Path & "\"  '// 対象となるフォルダのパス+"\"
dst_name = "データシート"    '// 対象データのあるデータ.xlsのシート名
mbk_name = "元シート.xls"    '// 元シート.xlsのファイル名
mst_name = "元シート"      '// 元シート.xlsの対象とすべきシート名

Set dst = Sheets(dst_name)
For i = 2 To dst.Cells(dst.Rows.Count, 1).End(xlUp).Row

'// 作成するファイル名をチェック
 b_name = dst.Cells(i, 1)
 If b_name <> "" Then
  j = 1
  bk_name = p & b_name & ".xls"
  While Dir(bk_name) <> ""
   j = j + 1
   bk_name = p & b_name & "_" & Format(j, "#") & ".xls"
  Wend

'// データをコピー、保存
  Workbooks.Open p & mbk_name
  Set mbk = ActiveWorkbook
  Set mst = mbk.Sheets(mst_name)
  For j = 1 To dst.Cells(i, dst.Columns.Count).End(xlToLeft).Column
   dst.Cells(i, j).Copy (mst.Range(dst.Cells(1, j).Text))
  Next j
  mbk.SaveAs (bk_name)
  mbk.Close
 End If
Next i
End Sub

丸投げに当るので、原型のみです。
上の例のtest_2.xlsのA1セルはtestが正しいと解釈して作成しています。
その他不明な部分は適当に仮定しています。(原型なので問題ないでしょう。)

・データの整合性等のチェックは一切省いていますので、実際の使用では各種のチェックを入れておかないと即エラーになります。(データが想定と違う場合)
・変数の宣言は省略して名前のみにしてありますが、実際はタイプを指定しておいたほうが良いでしょう。
・元シート.xlsおよび作成されるファイルは同じフォルダに...続きを読む

Q【word2003】excelからの差し込み印刷で,「Microsoft Excel ワークシート DDE (*.xls)」で別のシートを選択するには?

word2003を使用して,excelからの差し込み印刷を行っている際,数値に3桁ごとの区切り(,)が入らなかったので,
http://support.microsoft.com/kb/882154/ja#1
このページを参考に,「Microsoft Excel ワークシート DDE (*.xls)」を選択するようにしました。
ところが,元データには複数のシートがあり,いくつかの文書でそれぞれのシートを利用したいのですが,この方法では最初のシートしか選択できません。
別のシートを選択する方法はあるのでしょうか?
また,上記URLの下の方にある「データの差し込み後に書式を設定するには」で解決しようとする場合,具体的にはどのように入力したらいいのでしょうか。
ご存じの方がいらっしゃいましたら,どうぞよろしくお願いいたします。

Aベストアンサー

DDEの場合は、先頭シートだけが差し込みの参照シートになります。
これは仕様上諦めるしかないです。そこで桁区切りをフィールドコード
で変更される方式に戻して以下のように設定してください。

差し込み形式を元のOLE DBにする。
Wordの差し込みフィールドが設定している文書で[ Alt+F9 ]キーを押す。
フィールドコードが表示されたら桁区切りのためのスイッチを追加する。

{ MERGEFIELD フィールド名 \# #,##0 } にする。

または、スイッチの一部を省略して
{MERGEFIELD フィールド名 \# #,} でも出来ます。
これは「,」の区切りのスイッチが3桁区切りにしてくれるためです。
(「\##,」でも良いみたいです)

URL先では逆スラッシュ( / の反対 )で説明していますが、キーボードの
「ろ」のキーを示しているだけですから、「\」になるようにキーを押して
半角の「\」を追加してスイッチをたします。

QEXCELで作成したxlsファイルのバージョンを調べる方法

EXCEL2000またはEXCEL97で作成されたxlsファイルを
どのバージョンのEXCELで作成されたのか調べる方法、
またはツールをご存知の方はいますか?

Aベストアンサー

私は↓のフリーソフトを使ってます

参考URL:http://members.at.infoseek.co.jp/dr_admk/

Q複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。

複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。
皆様のお知恵をお借りできませんでしょうか?

現在約1000行からなる同一体裁のtxtファイルを多数所持しております。

中身はタブで区切ってあったので、タブをコンマに変換し、CSVファイルを作りました。
これらのファイルを15~20ファイルごとにフォルダ分けしてあります。
このCSVファイルをエクセルで開いたところ、
うちB601:B802に必要な情報が入っていました。
この情報を以下のような要領で入力したまとめxlsファイルを作りたいです。

A列
1行目 一つ目のCSVのファイル名(フォルダ内のCSVを名前順で並べたときに1番上のもの)
2行目~203行目 一つ目のCSVのファイルのB601:B802

B列
1行目 2つ目のCSVのファイル名(名前順で2番目のもの)
2行目~203行目 2つ目のCSVのファイルのB601:B802

(以後15~20ファイル分、O~T列まで。20ファイル以上にも対応できると嬉しいです。)

このxlsファイルを最低でも20個作る予定です。

VBAマクロできっと出来るはずと思い、昨日9時間ほど調べたのですが、習得には至ってません。
例えば1つのCSVのB601:B802をコピーするマクロは作成できますが、
それをまとめファイルのA2に貼り付け、
まとめファイルのA1にCSVのファイル名を挿入し、
さらに同様の抽出をフォルダ内の別のファイルに連続して行い、
挿入部位が被らないようにまとめファイルB列以降に貼り付けさせることができません。

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv252.htmlや
http://oshiete1.goo.ne.jp/kotaeru.php3?q=359726や
http://www.excel.studio-kazu.jp/kw/20080428180002.htmlなどを
応用できないか試してみましたが結局よくわからない状態です。
おそらくこちらの説明が不十分で答えにくい質問なのではないかと思いますが、
どなたかお答えいただければ幸いです。

また、勉強してから出直せ!的なことであれば勉強したいとおもいますので、
お勧めの書籍、サイトを教えていただければ幸いです。
どうかよろしくお願いいたします。

複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。
皆様のお知恵をお借りできませんでしょうか?

現在約1000行からなる同一体裁のtxtファイルを多数所持しております。

中身はタブで区切ってあったので、タブをコンマに変換し、CSVファイルを作りました。
これらのファイルを15~20ファイルごとにフォルダ分けしてあります。
このCSVファイルをエクセルで開いたところ、
うちB601:B802に必要な情報が入っていました。
この情報を以下のような要領で入力したまとめxlsファイルを作りたいです。
...続きを読む

Aベストアンサー

処理する順番が決っていないのでしたら
DIR関数とループを上手く使えば良いかもです。
(手抜きなサンプルですが)
strFileName = Dir("C:\TEMP\*.CSV", vbNormal)
i = 0
Do While strFileName <> ""
 'ファイル開く(省略 ※エラーなら抜けないとですが)
 'コピー(省略)

 'ペースト
 Sheets("コピー先").range("A2").offset(0,i).pastespecial
 i = i + 1

 '次のファイル名
 strFileName = Dir()
Loop

決っていないなら
iColumn = .Cells(iRows, .Columns.Count).End(xlToLeft).Column
if .Cells(1,iColumn) = "" then
 iColumn = iColumn + 1
end if
とかでカラム位置を求めるしかないかもです。


人気Q&Aランキング

おすすめ情報