セルA1に書いてある文字をそのままファイル名にして保存させるコードの記述方法を教えて下さい。

例)
A1に 「’001」を入力しておき、シート上に配置してあるコマンドボタンをクリックすることで、「001.xls」と名を付けて、あらかじめ決めてある、ディレクトリに保存

エクセル97を使用しています。上書き保存とか、予めコード内にファイル名を書いておく方法は分かったのですが、セルを参照させる方法が分かりません!
どなたか詳しい方、宜しくお願い致します。

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

A 回答 (1件)

セルの文字の参照は変数を使います。



Sub Macro1()

Dim X As String
X = Range("A1")
ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\デスクトップ\" & X & ".xls"
End Sub
    • good
    • 0
この回答へのお礼

now2150さん!ありがとうございました。お礼が遅くなりましてすみません!
うまくいきました。私のコードには「&」が漏れていました。
助かりました。本当にありがとうございました。

お礼日時:2001/08/01 19:16

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

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

QA1セルにAと入力すると、A2セルに3000A3セルに2000A4セルに1000と表示させたい。

A1セルに「A」と入力する1回だけで、
A2セルに「3000」
A3セルに「2000」
A4セルに「1000」
A5セルに「合計数字」を表示させたいのですが、
式をご教授願いたいです。

よろしくお願いします。

Aベストアンサー

D1:G3
A500030001000
B500300130
C1200800300
A1にA,B,Cのどれかを入れる。
A2に =VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE)と入れて、
A4まで(G-D-1列数だけの行数)式を複写する。
結果
A1がBの場合A1:A4は
B
500
300
130

A1の空白の場合に対処して
=IF(A1="","",VLOOKUP($A$1,$D$1:$G$2,ROW(),FALSE))
が良いでしょう。
(既回答とほぼ同じ式ですが、1箇所違うところがあります。)

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?

QExcel A1セルに5(月)と入れたらA2セルに4(月)という風にA

Excel A1セルに5(月)と入れたらA2セルに4(月)という風にA1セルに入れた前月をA2セルに表示したのです。 A2セルに[=A1-1] とすればいいのでしょうが、A1に1と入力してA2に12を表示するときにはIF関数が必要だと思います。上記のようにするための関数を教えて下さい。

Aベストアンサー

以下の式でどうでしょうか。
=IF(A1=1,12,A1-1)

Qエクセル初心者ですが、A2のセルに文字が書き込まれると、A1のセルに自

エクセル初心者ですが、A2のセルに文字が書き込まれると、A1のセルに自動的に15の数字が入るようにする関数をおしえて下さい。

Aベストアンサー

>A2には他のシートのセルに入力されると文字が表示されるように関数が入っています。
A2に定義した関数の結果は全て文字列でしょうか?
簡単な例では =Sheet2!A2 のようにSheet2の同一セルを参照している場合、対象が未入力の場合はA2に数値の0が反映され、文字列が入力されればその文字列になります。
倫理運算のif関数で =if(isblank(Sheet2!A2),"",Sheet2!A2) のように定義されたときは数値の入力時のみ数値で文字列入力と未入力の場合はA2に文字列が定義されます。

これらの条件を考慮しないと質問の用件を満足する関数を組み立てられません。
A2に定義された関数を提示して頂く必要があります。
また、他のシートのセルに入力されるデータの種類も必要になると思います。

Qエクセルで、A2セルの値を同シート内(A5以降のA列)で検索し、該当セルにジャンプする方法はありますか?

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1417540469

上記のページと同様の質問なのですが、
ベストアンサーに選ばれている回答は別シートにジャンプですが、
同シートでのジャンプの方法はありますでしょうか。

どなたかご教示いただけると助かります。
何卒よろしくお願いいたします。

Aベストアンサー

とりあえずはご提示いただいた回答で
>Set Ws2 = Sheets("Sheet2")

 Set Ws2 = ActiveSheet
にするだけで良いと思います

私ならこんなマクロにします。マクロはシート名タブ右クリック→コードの表示で開く画面に貼り付けてください。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim trg As Range
 If Target.Address = "$A$2" Then  
  Set trg = Range(Cells(5, "A"), Cells(65536, "A")).Find(what:=Range("A2").Value _
    , LookIn:=xlValues, Lookat:=xlWhole)
  If Not trg Is Nothing Then
   trg.Select
  End If
 End If
End Sub


このカテゴリの人気Q&Aランキング

おすすめ情報