• ベストアンサー

自身のブック名を変更したい

こんばんは。 Sub test() ActiveWorkbook.Name = "変更後ブック名.xls" End Sub とすると 「.Name =」の部分が コンパイルエラーになります。 (値の取得のみ可能なプロパティに値を設定することはできません。) 現在開いているブックの名前を変更するコードを教えてください。 ご教授よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

こう言う事かな? >ActiveWorkbook.Name = "変更後ブック名.xls" を '名前を付けて保存 ActiveWorkbook.SaveAs Filename:="変更後ブック名.xls" と変更する

noname#150427
質問者

お礼

こう言うことです! 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

a5sd4gさん 今日は! >Sub test() >ActiveWorkbook.Name = "変更後ブック名.xls" >End Sub >とすると「.Name =」の部分がコンパイルエラーになります。 ■ブック・シート名を取得・変更↓ http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv202.html#3 内容:ブック・シート名関連のサンプルマクロが出ています。 ■マクロ講座11回 ブックを開くマクロ↓ http://kokodane.com/macro_kouza.htm 内容:たとえば、Cドライブにある、Book1.xlsを開くマクロは、記録してみましょう。以下のようになります。(参考にして下さい) 画面上部のメニューが有りますので右の「エクセルマクロ講座」をクリックして下さい。

noname#150427
質問者

お礼

有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • vba ブックを変更しないで閉じたい

    ブックを開き、 Sub Macro2() Application.DisplayAlerts = False 'セルをいじる処理(A1に「あ」を入れるなど) '・・・ Windows("ブック1.xls").Activate ActiveWorkbook.Close SaveChanges:=False End Sub を実行すると変更があっても何も表示されないで閉じるはずですが とあるブックのみ、 「'ブック1'を保存しますか?」 はい いいえ キャンセル が出ます。 同じコードをブックに対して行なっているのに、実行できる場合と出来ない場合があるのでしょうか?

  • アクセス 自身のデータベース名を取得するのは「CurrentDatabase」ではない?

    Sub test() MsgBox CurrentDatabase End Sub を実行すると 「変数が定義されていません。」となってしまいます。 エクセルで言う MsgBox ActiveWorkbook.Name を行ないたいのですがどんなコードを書けばいいのでしょうか? よろしくお願いします。

  • ブックのすべてのシート名を取得するコード

    何が間違いなんでしょうか? エクセル2003です。 ブックのすべてのシート名を取得するコードを考えてるのですが なぜか一番左のシート名しか取得できません。 コードは↓です。 ----------------------------------- Sub test01() Dim x As Workbook For Each x In Workbooks Debug.Print ActiveSheet.Name Next End Sub ----------------------------------- できないので「Workbooks」の部分を「ThisWorkbook」に変えてみたところ 実行時エラーになってしまいました。 ご教授よろしくお願いします。

  • アクティブのブックのインデックスを知るプロパティ

    アクティブのブックをインデックスを取得する方法が知りたいのですが、 シートの activesheet.index のような、アクティブブックのインデックス番号を知ることができるプロパティはないでしょうか? 次のようなマクロを使って取得する方法は思いついたのですが、できればプロパティなど簡潔な文で 取得したいのです。 Public Sub tset() Dim i, s For i = 1 To Workbooks.Count If Workbooks(i).Name = ActiveWorkbook.Name Then s = i Next MsgBox s End Sub

  • ファイル名のみを取得するには?

    Sub 取得() MsgBox ActiveWorkbook.Name End Sub を実行すると 「エクセル.xls」 と取得されますが 拡張子を除いたファイル名だけを取得するにはどうすればいいでしょうか? 「エクセル」だけを取得したいです。 よろしくお願いします。

  • オブジェクト変数にブックを格納するには?

    vbaで新規にブックを立ち上げて、そのブックの位置を指定したのですが Sub Sample1() Dim w As Workbook Workbooks.Add w = ActiveWorkbook.Name w.Top = 0 w.Left = 0 End Sub これだとエラーになります。 w = ActiveWorkbook.Name これでは新規ブックを変数に格納できないようです。 w = ActiveWorkbook だけでもダメでした。 どうすればよいでしょうか? よろしくお願いします。

  • 他のExcelブックのモジュールに構造体を渡すには

    Book1.xlsのaモジュールから構造体を引数としてBook2.xlsのbモジュールを呼び出したいのですが、Book1.xlsのVBEのツールメニューの参照設定でBook2.xlsを参照しましたが、Book1.xlsのaモジュールを実行するとCall b(t)のtの箇所で「ByRef 引数の型が一致しません」というコンパイルエラーになります。 他のブックのモジュールに構造体を渡すにはどのようにすればよいのでしょうか。 よろしくお願いしたます。(OS:WindowsXP Excel2003) ---Book1.xls--- Option Explicit Public Type TT  name As String End Type Sub a()  Dim t As TT  t.name = "ABC"  Call b(t) End Sub ---Book2.xls--- Option Explicit Public Type TT  name As String End Type Sub b(t As TT)  MsgBox t.name End Sub ---------------

  • 【VBA】シート順番に新規ブックにコピーする方法

    いつもこちらの識者の皆様にはお世話になっております。 VBAのことで質問させてください。 ブックに、 "入力用","りんご","ばなな","みかん" のシートがあります(シートは今後増える可能性があります) このうち、"入力用"以外のシートに下記の処理をしたいのです。 1.1シートごとに新規でブックを作成し、データを値で貼り付ける。 2.ファイル名を"シート名" + mmdd形式でC:\aaa\に保存する(ex.C:\aaa\りんご0513.xls)  このときできれば、シートはコピーしてきた1つだけにするのが望ましいです。 作りかけのコードは下記です。 -------------------------------------------------------------- Sub test() Dim objSh As Object For Each objSh In ActiveWorkbook.Sheets If objSh.Name <> "入力用" Then objSh.Select ThisWorkbook.ActiveSheet.Copy '関数が残っているので値で貼り付けたい ActiveWorkbook.SaveAs Filename:="" 'コード不明 End If Next End Sub -------------------------------------------------------------- 分からない点は 1.ThisWorkbook.ActiveSheet.Copyで新規ブックにシートをコピーすることはできたのですが、 関数が残ってしまっているので、値で貼り付けたい。 2.シート名を取得して、ファイル名に反映する方法がわからない。 です。 どなたか、上記内容の場合どのようなコードが適しているか教えていただけませんでしょうか。 よろしくお願いいたします。

  • エクセルマクロでブック名を検索できない

    エクセルマクロで今開いているブック以外のブック名を取得して編集するマクロを作っていますが、一度他のブックを開かずにエラーメッセージ"価格を検索したいブックを開いて下さい。"を表示させると以降開いたブック名を取得出来ません。 For Each wb In Application.Workbooks s = wb.Name If s <> ActiveWorkbook.Name Then Exit For Else MsgBox "価格を検索したいブックを開いて下さい。" Exit Sub End If Next オブジェクトの解放など調べてみたのですが、初心者でよく解らず困っています。どなたか教えて下さい。

  • 個人用マクロブックの有無

    エクセルVBAで現在ユーザーが使っているパソコンに個人用マクロブックが存在するかどうかを取得する方法を考えました。 まず、開いているBOOKを総当りして、エクセル2003までなら PERSONAL.XLS、2007からは"PERSONAL.XLSM がひらいているかどうかを調べる方法。 Sub test1() Dim wb As Workbook For Each wb In Workbooks If wb.Name Like "PERSONAL.XLS*" Then MsgBox "個人用マクロブックがあります。" Exit Sub End If Next MsgBox "個人用マクロブックはありません。" End Sub 最初から個人用マクロブックがあるものとして変数に入れ、エラーになったら無いと判断する方法。 Sub test2() Dim wb As Workbook Dim v As String v = IIf(Val(Application.Version) > 11, "PERSONAL.XLSM", "PERSONAL.XLS") On Error Resume Next Set wb = Workbooks(v) On Error GoTo 0 MsgBox "個人用マクロブックが" & IIf(wb Is Nothing, "ありません。", "あります。") End Sub でも、自分の端末はまだ2000で、しかも個人用マクロブックがあるので、ちゃんと判定できているのかどうか自信がありません。 これで正しいのでしょうか? また、test1とtest2ではどちらをつかえばいいのでしょうか? あるいは、もっと簡単なやりかたはないのでしょうか?

専門家に質問してみよう