Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5951 / 13645 ツリー ←次へ | 前へ→

【48016】xlaファイルをxlsに保存するときにマクロも一緒に保存出来ますか? MURA 07/3/30(金) 15:39 質問[未読]
【48030】Re:xlaファイルをxlsに保存するときにマク... りん 07/3/31(土) 9:45 回答[未読]

【48016】xlaファイルをxlsに保存するときにマクロ...
質問  MURA  - 07/3/30(金) 15:39 -

引用なし
パスワード
   はじめまして。MURAと申します。
VBA初心者です。

題記の件、xlaファイルを実行し、
表示されたExcelを"xls"で保存するときに
マクロも一緒に保存する方法が無いか検討しております。

今回、アドインファイル(.xla)を作成しました。
これはファイルの読み込みと出力をするVBAです。
xlaを実行し、読み込みファイルを選択すると、
データ内容によって異なるExcelレイアウトを出し、
また表示されたデータをファイル出力する事が出来ます。

このデータ読み込み後、編集も可能なので、
途中でデータを保存する必要があります。
その為、ファイル保存ボタンを作成し、
保存を可能としております。

入力データを保存する(ようはデータをXLSに保存)ことは出来ました。
しかし、データのみしか保存が出来ず、
XLSを開いて再度マクロを実行しようとすると、
マクロが開かれていない為エラーとなってしまいます。
ここでマクロを実行できるようにするには、
XLSファイルにマクロがついた状態で保存する必要があると思っております。

データとマクロを1つのブックに保存する方法を
ご存知の方がいらっしゃいましたら、
ご教示頂きたくお願いもう上げます。

【48030】Re:xlaファイルをxlsに保存するときにマ...
回答  りん E-MAIL  - 07/3/31(土) 9:45 -

引用なし
パスワード
   MURA さん、おはようございます。

>このデータ読み込み後、編集も可能なので、
>途中でデータを保存する必要があります。
ボタンでないといけない理由はありますか?
コードでブックにマクロを登録できますが、リスクを踏まえてセキュリティ設定でVBAからのアクセスを信頼する必要があります。しないとエラーになります。

読み込むファイル(C:\Module1.bas)の中身================
Attribute VB_Name = "Module1"
Sub RunTest()
  If MsgBox("上書きします" , vbYesNo) = vbYes Then Thisworkbook.Save
End Sub
====================================
このマクロを実行すると、新しいブックにボタンとマクロを登録します。
Sub test()
  Dim wb As Workbook, sh As Shape
  Set wb = Application.Workbooks.Add
  wb.VBProject.VBComponents.Import ("C:\Module1.bas") 'ファイルを取込み
  With wb.Worksheets(1)
   With .Range("B1:C2")
     Set sh = .Parent.Shapes.AddFormControl(xlButtonControl, .Left, .Top, .Width, .Height)
     sh.TextFrame.Characters.Text = "上書き保存"
     sh.OnAction = wb.Name & "!RunTest"
   End With
  End With
  Set sh = Nothing: Set wb = Nothing
End Sub

こんな感じです。

5951 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free