アプリ版:「スタンプのみでお礼する」機能のリリースについて

会社のExcelファイルで、拡張子が「xlm」のファイルがありました。Excel4.0というずいぶん古いバージョンのマクロのようですが、
(1)昔はこういうExcel4.0の「xlm」ファイルって、結構使われていたのでしょうか?
(2)これのマクロはExcelのシートのセルにだけ書き込まれるものなのでしょうか?というのも、VBE画面でソースコードを見ようにも、VBAモジュールが全くなく、ソースコードらしきものはExcelのシートのセルにしか書かれていないからです。Excel4.0マクロって、VBEにソースコードを書き込むんじゃなく、Excelのシートのセルに命令を全て書いて動かすものなんでしょうか?

A 回答 (2件)

こんにちは。



>(1)昔はこういうExcel4.0の「xlm」ファイルって、結構使われていたのでしょうか?

それほど多くないと思います。それは、ほんの短い期間で、Ver.5に以降した時には、Visual BasicのVBAが搭載されました。Ver.4マクロ関数は、構造化がしにくいので、単発のマクロになってしまいます。

>(2)これのマクロはExcelのシートのセルにだけ書き込まれるものなのでしょうか?

今でも、使えます。VBAのような言語とは違い、関数型のマクロ言語です。
「マクロ関数」と呼ばれていて、今まで、Ver.4マクロは、駆逐するという話でしたが、Office 2007からは、なくてはならないものになってしまいました。しかし、マイクロソフト側では、その仕様を公にする様子がありません。(私は、ブランクがあるので、もしかしたら、しているかもしれません。)

>Excel4.0マクロって、VBEにソースコードを書き込むんじゃなく、

VBAでも、Excel 2007以上では、このようにして、マクロ関数を使ってリボンを隠します。
 Application.ExecuteExcel4Macro ("SHOW.TOOLBARS(""RIBBON"",FALSE)")

また、印刷系やグラフ系には、未だ、Ver.4マクロ関数が利用されます。

>Excelのシートのセルに命令を全て書いて動かすものなんでしょうか?

シートのセルに書くのは、その前のバージョンのようです。DOSで知られたLotus123やMS-Multiplanは、そのようなスタイルでしたが、ExcelのVer.4からは、シートの挿入で現れる「Ver.4 マクロ」の、マクロシートです。

書き方は、このような書き方をします。

[ユーザー定義関数名]
=ARGUMENT("rng",8)
=GET.CELL(48,rng)
=IF($A$4,"数式","定数")
=RETURN(A5)

[マクロ関数のヘルプ]より
GET.CELL ->48->セルに数式が含まれていれば TRUE を、定数が含まれていれば FALSE を返します

これらは、ほとんど、VBAに書き換えが可能ですが、一部で、書き換えできないものが残っています。
    • good
    • 1
この回答へのお礼

ありがとうございます。やはり、かなり古いものなんですね。

お礼日時:2014/03/21 11:14

VBAがOfficeに実装される前は、マクロシートというものが存在して、マクロを動かすときはこれを開いておく必要がありました。


そのマクロは今でも動くはずなので、シートを開いた状態で「すべてのマクロを表示」してみると、ボタンに割り付けたりすることができますよ。(多分(^_^; )
    • good
    • 0
この回答へのお礼

そのExcel4.0マクロは確かに動きますし、業務で実際に使用しています。しかしまあ、VBAに取って代わられた現在、そのマクロのメンテを今後出来る人がいるのか怪しいし、見直しが必要なんですかね。

お礼日時:2014/03/21 11:15

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