[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『xlsmをxlsxで保存したい』(テイルフィールド)
xlsm形式で一旦保存したマクロ有効ファイルをxlsxに変換したいのです。
初心者のため色々、ネット検索してこのサイトで以下を見つけました。
これをどこに張り付けすれば良いのでしょうか。
Dim fname As String
Application.DisplayAlerts = False
fname = "aaa.xlsx" '
Sheets.Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & fname
ActiveWorkbook.Close
Application.DisplayAlerts = True
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows8 >
参考過去ログです。
[[20190726084457]] 『xlsmをxlsxで保存』(かえで)
(MK) 2023/02/25(土) 16:05:01
こちらも参考にしてください。
https://learn.microsoft.com/ja-jp/office/vba/api/excel.xlfileformat
(MK) 2023/02/25(土) 16:06:31
>これをどこに張り付けすれば良いのでしょうか。
「どこに」の意味が分かりません。
VBEのこと? あるいは標準モジュールやワークシートモジュールなどの「どこに」ということ?
どういうタイミングで行いたいか?にもよると思います。 (MK) 2023/02/25(土) 16:18:40
2019/07/26(金) 09:12のカリーニンさんのレスをよく読んでくださいね。 (MK) 2023/02/25(土) 16:21:52
シートをコピーしブックとして保存するか、
Application.DisplayAlerts = False ’ブックを保存 Application.DisplayAlerts = True
としないと警告メッセージが出ます。
(MK) 2023/02/25(土) 16:49:10
警告が出るというのはガセネタでした。 私が試したコードのFileFormatが間違ってました。
形式を xlOpenXMLWorkbook にすると問題なく保存できました。
間違って xlWorkbookDefault で試してました。 (MK) 2023/02/25(土) 17:49:47
残念ながら、それはできない相談です。 人間だったら、「顔つきはxlsxだけどマクロが入ってるんだね、あそう、事情があるんだね」とか 忖度する人がいるかもしれないが、機械はそんな融通ききません。
マクロが入ったxlsxブックなどという例外は認められません。 「使用部署に連絡したらいいんじゃないですか?それが嫌なら、マクロを消してください」が Excel側の答えです。 (abc) 2023/02/26(日) 07:49:09
尚 >初心者のため色々、ネット検索してこのサイトで以下を見つけました。 なんの初心者だか解りませんが、これは同じファイル形式の物だと思います。
(無知) 2023/02/26(日) 15:01:10
Changeイベントを用いたものだと難しいかもしれませんが、
別のマクロブックから当該xlsxを開いて、
適用することが出来るような類のマクロなら、当該xlsxはそのままで良いのでは。
(そんな使い方は状況によっては不便だと思うし、
そもそも各部署のショートカットを作り直してもらうほうが良いと思うが)
(すいとん) 2023/02/26(日) 17:57:58
問題の説明が不十分だったことが行き違いの原因です。
あなたの本来の質問は、 「マクロコードが入ったブックを、マクロ有効のままxlsxで保存したい、どうしたらよいか」という ことのようですが、最初の説明ではそういう風には読み取れません。 議論されたのは、xlsmブックのなかのシートだけをコピーして、xlsxとして保存する方法でした。
正確な目的が説明されたのは、(テイルフィールド) 2023/02/25(土) 19:38:05においてでした。 最初からそう説明されていれば、MKさんもきっと私と同じ(より適切な?)回答をされていたはずです。 残念ながら、その時点までの質疑のやりとりは、本来の質問に関するものではありませんでした。
私は、そういうことはExcelの仕様上できない、とコメントしたのですが、 まったく理解されなかったのは残念でした。 私の回答で伝わると思っていましたが、そうではなかったようなので、改めて詳細説明しておきます。
1. Sheets.Copy はシートをコピーするだけですから、標準モジュールにあるマクロコードは コピーされません。 それを xlsxで保存することはできますが、それで今回追加したマクロが動作する訳はありません。 (なお、シートモジュールにマクロがある場合は、そのシートモジュールのマクロも同時にコピーはされます。 しかし、xlsxで保存はできません。)
2.「xlsxブックにマクロコードを含める」ということは、どんな偉いさんのユーザーでも実現できません。 これは手作業でやっても当然できませんし、マクロ操作すればできるといった種類のことでもありません。
3. 二つの拡張子(xlsx,xlsm)の使い分けを導入したのは、 マクロを使ったウイルスからユーザーを保護することも大きな理由のひとつだったでしょう。 つまり、マイクロソフト社は、拡張子を分けることで「xlsxはマクロがないブックである」と いうことを明確にしたかったのです。ですから、一切の例外は認められないのです。 仮にそこに例外を設けて、穴をあけてしまったら、マクロウイルスの作者は大喜びになります。 (無論、そのほかのマクロウイルス対応策もありますから、単純化して申し上げています)
4. そのブックにマクロを組み込むことが必須だとすると、xlsm形式にすることは避けられません。 ですから、その連絡をしなければなりません。
そういうことですので、よく理解してください。
# ちなみに、こうした質問掲示板にはいろんな人(質問者、回答者)が出入りしますので、 # 一人の人の言動に余り熱くならないことも処世術です。 # 思うところはありますが、管理人さんのお仕事でしょう。 (abc) 2023/02/27(月) 08:29:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.