ネットが遅くてイライラしてない!?

 エクセルVBAについての質問です。
 エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。
 ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

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

A 回答 (2件)

FNを文字列として扱っていませんか?以下でどうでしょう?




Sub 保存()

Dim FN As String
FN = Range("C2")
ActiveWorkbook.SaveAs Filename:="C:\変換ファイル\6月\" & FN & ".xls"
End Sub
    • good
    • 11
この回答へのお礼

見事に、今まで必ずデバックがでていたのが嘘のようにできました。本当にありがとうございました。
 今回はおかげさまでできるようになりましたが、HitomiKuroseさんの回答でちょっと分からない点があるのですがまた質問させていただいてよろしいでしょうか。
 今までの自分のステートメントと比べると&がついている点が違っているのですが、&はどのような意味を持っているのでしょうか。あと、FNには文字列(例えば企業名など)が入るので、文字列として扱っていたのですが、それではまずいのでしょうか。もしよろしければ、ご回答寝返ればと思います。
 今回はありがとうございました。

お礼日時:2001/07/31 22:58

&は素直に連結です。



FNの中身は文字列ですが、FN自身は変数なのに
"C:\変換ファイル\6月\FN.xls"
などと書くとFNと云う文字列として扱われる(""の中は文字列)ので変数としてのFNの中身が反映されません。
回答した方法ですと、FNは""の外にあるので変数として認識され、中身が反映します。
    • good
    • 2
この回答へのお礼

 お礼が遅くなって申し訳ありません。
 "" や&の使い方が全然わかっていなかったようです。大変、勉強になりました。どうもありがとうございました。

お礼日時:2001/08/04 18:12

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

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

Q[Excel] ファイル名を変数指定して保存するマクロ

Excelで、セルA1の値の名前でファイルを保存したいのですが、マクロがうまくかけません。
ご存知の方、教えて下さい。

Aベストアンサー

簡単ですが、下記で可能です。
Sub ファイル保存()
ThisWorkbook.SaveAs Cells(1, 1).Value
End Sub
■指定のフォルダに格納する場合は、ファイルメニュ「ツール」→「オプション」の「全般」タブの「カレントフォルダ名」にフォルダを指定してください。

Qexcelマクロ、任意セルの値で名前を付けて任意のフォルダに保存

マクロの初心者ですが、どうか教えてください。
テンプレートブックを名前を付けて保存するマクロで
苦戦しております。
 ・ダイアログを必ず開く
 ・その時の保存先はz:\あああ
 ・ブック名はアクティブシートの任意のセルA1
---------------------------------------------
Application.Dialogs(xlDialogSaveAs).Show _
Arg1:=Range("A1").Value

ここまではたどり着けたのですが、ダイアログが
当初のテンプレートブックの保存場所が開いてしまいます。

どうぞよろしくお願いいたします。

Aベストアンサー

ふぅむ・・・
なんか説明がマズイようで、申し訳ない

まず、保存の部分は値さえ取れればOKとしまして、ダイアログにデフォルトセットされる部分についてのみです


デフォルトのフォルダを
"z:\■■受注書"
とします(セルZ1にセットしてある)

デフォルトファイル名を
"いいい.xls" 
とします(セルA1にセットしてある/ "いいい"のみでもOK)

MySavePath = Application.GetSaveAsFilename(Range("Z1").Value & "\" & Range("A1").Value, "Excel ファイル (*.xls), *.xls")

GetSaveAsFilenameに入れる値は、最初 "z:\■■受注書\いいい.xls" と言う事になります

本来保存したいところではないので、勘違いしますが、あくまでダイアログのデフォルトにセットする引数なので、問題ありません
上手く行かないようでしたら
これを試して下さい

MySavePath = Application.GetSaveAsFilename("z:\■■受注書\いいい", "Excel ファイル (*.xls), *.xls")

どこを Range("A1").Value と置き換えるかは・・・
まぁ見たままです
文字の連結には『&』を使います


Range("A1").Value = hogehoge としたのは、値がセットされていない事を考慮してです
デフォルトセットする値を取得するセルに、すでにフォルダ名やファイル名がセットされているのであれば、不要な部分です
コメントにして下さい

これで上手く行くと良いですがねぇ

ふぅむ・・・
なんか説明がマズイようで、申し訳ない

まず、保存の部分は値さえ取れればOKとしまして、ダイアログにデフォルトセットされる部分についてのみです


デフォルトのフォルダを
"z:\■■受注書"
とします(セルZ1にセットしてある)

デフォルトファイル名を
"いいい.xls" 
とします(セルA1にセットしてある/ "いいい"のみでもOK)

MySavePath = Application.GetSaveAsFilename(Range("Z1").Value & "\" & Range("A1").Value, "Excel ファイル (*.xls), *.xls")

GetSaveAsFilename...続きを読む

Q保存先のフォルダ名を指定したいとき

希望する事は
ファイルを保存するフォルダを指定し、
ファイル名(インプットボックスをつかって
変数として入力させたもの)をつけて保存したい。
フォルダは事前に作成してあるが
保存したい場所はそのときによってまちまちなので
保存するたびにフォルダを指定したい。


具体的には
C:\入力済みデータ\【○○】としたいのですが
この【○○】の部分を、そのときに応じて選択するにはどうすればいいでしょうか。

または、浅知恵で
Application.Dialogs(xlDialogSaveAs).Show arg1:="c:\"
というかたちでダイアログボックスを出すまでは出来たのですが
ファイル名は空欄になってしまいますよね。

InputBoxでファイル名を変数として入力させたものを
上のファイル名に入れることは可能ですか?

どうぞよろしくお願いします。

Aベストアンサー

これでできませんか?
まず条件どおり、C:\入力済みデータ の中にいくつかのフォルダを用意しました。
Excel 2003 を新規に立ち上げ、新規ワークブックに標準モジュールを挿入し、以下のコードを書き込んで実行しました。

Sub hoge()
Dim initPath As String
initPath = "C:\入力済みデータ"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFilename(initPath, "Excel File (*.xls),*.xls")
If Not (saveFilePath = "False") Then
ThisWorkbook.SaveAs saveFilePath
End If
End Sub

"ファイル名を指定して保存" のダイアログが表示され、初期フォルダとして C:\入力済みデータ が開かれています。
ファイル名は何も指定されていません。
ダイアログの中には当然、先に作っておいたいくつかのサブフォルダが一覧表示されているので、ユーザーは
1) サブフォルダを選択する。
2) ファイル名を入力する。
3) [保存] ボタンをクリックする。
というアクションを行う。

私のところではダイアログ表示時の初期フォルダとして My Documents ではなく、きちんと C:\入力済みデータ が開かれましたよ。

これでできませんか?
まず条件どおり、C:\入力済みデータ の中にいくつかのフォルダを用意しました。
Excel 2003 を新規に立ち上げ、新規ワークブックに標準モジュールを挿入し、以下のコードを書き込んで実行しました。

Sub hoge()
Dim initPath As String
initPath = "C:\入力済みデータ"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFilename(initPath, "Excel File (*.xls),*.xls")
If Not (saveFilePath = "False") Then
ThisWorkbook.SaveAs saveFilePath
End If
End Su...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qファイル名を今日の日付、時刻で保存する

マクロについて教えてください
エクセル(2003?)でマクロを使って
ファイルを保存するボタンをつくろうと思います。
「ファイル名を今の月-日-時-分で保存する」
という内容を書きたいと思います。

保存するところまではできるのですが、
今日の月-日-時-分を自動的にファイル名に入れる
ところをどうしたらよいかわかりません。

Filename = Format(Date, "yyyy-mm-dd")
と入れれば日付が入るのはわかったのですが、
時刻も入れたいです

Filename = Format(Date,"yyyy-mm-dd",Time,"hh-mm-ss")
こんな風に書いてみたのですが、うまく機能しませんでした

ご存知の方、ご教授ください。

Aベストアンサー

Filename = Format(Now(), "yyyy-mm-dd-hh-mm-ss")
でOK。

QVBA  PDF ファイル名をセルからつける

ExcelでPDFを出力するときに、たとえばB1のセルに入力されているものを、ファイル名の一部として出力する方法がわかりません。

例えばB1に「資料1」と入力されていた場合で、PDFのファイル名を[TEST資料1.pdf]にしたい場合、下記に何かを足すだけでできますでしょうか?

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"I:\補TEST\TEST.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

できれば、解説もいただけると助かります。よろしくお願いします。

Aベストアンサー

一例です。
文字列の結合ですから解説は不要ですよね。

"I:\補TEST\TEST" & Range("B1") & ".pdf", Quality:=xlQualityStandard, _

QExcelでセル内の文字をファイル名にする方法と、下のSheet1タブを2列にする方法は?

Excel2003です。OSはWinXPです。質問は2つです。

1.セル内の文字をファイル名にする方法は?
例えばA1セルに 1153 と入っていたら、ファイルの名前を付けて保存するとき、普通は Book1.xls となりますが、
これを 1153.xls とするにはどうしたらよいですか?

2.下のSheet1タブを2列にする方法は?
EXcelの下の方にシート切り替えがありますが、これを2列にするにはどうしたらよいですか?

Aベストアンサー

1は、前回の回答で間違いありませんが、もう少し詳しく処理方法を書きます。

(1)そのBookを開き、ツール→マクロ→新しいマクロの登録を選択。
(2)ダイアログボックスを確認、マクロ名(今回はMacro1のまま)を入力し、OK。
(3)そのBookを適当な名前(今回はBook1)で保存し、マクロの記録を終了。
(4)ツール→マクロ→マクロを選択、マクロ名を選択し、編集ボタンを押す。
すると、下記のようなモジュールが現れる。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2006/8/29
'
ChDir "C:\Documents and Settings\管理者\保存するフォルダ○○"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\管理者\保存するフォルダ○○\Book1.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub

ので、Filename:=の後の " から .xls" までを Range("A1") & ".xls" と変更する。

2については済みません。解りません。

1は、前回の回答で間違いありませんが、もう少し詳しく処理方法を書きます。

(1)そのBookを開き、ツール→マクロ→新しいマクロの登録を選択。
(2)ダイアログボックスを確認、マクロ名(今回はMacro1のまま)を入力し、OK。
(3)そのBookを適当な名前(今回はBook1)で保存し、マクロの記録を終了。
(4)ツール→マクロ→マクロを選択、マクロ名を選択し、編集ボタンを押す。
すると、下記のようなモジュールが現れる。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2...続きを読む

QEXCELで日付を自動でファイル名にしたい

タイトル通りなのですが
ファイル名を自動で日付にして保存するマクロ
どうやればよいのでしょうか

私は記録したマクロを解説書を見ながら整理
するくらいのレベルです

よろしくお願いします

Aベストアンサー

マクロではなく、VBAになりますが、
例えば、2005年5月1日だったら、「20050501.xls」という、ファイル名にして保存することでよろしければ、次のようにすれば出来ます。

Sub 日付のファイル名()
Dim a, b, c As String

a = Application.WorksheetFunction.Text(Date, "yyyymmdd")
b = "C:$"
c = b & a & ".xls"
ThisWorkbook.SaveAs (b)
End Sub

b は、実際に保存しようとする、フォルダー名を入れて下さい。
もし、2005年5月1日を「050501.xls」と、する場合は、 (Date, "yyyymmdd")を (Date, "yymmdd") とすれば、出来ます。

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング