• ベストアンサー
  • 暇なときにでも

拡張子「xlm」のファイルについて

  • 質問No.8520697
  • 閲覧数524
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 94% (401/425)

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

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 57% (465/803)

こんにちは。

>(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に書き換えが可能ですが、一部で、書き換えできないものが残っています。
お礼コメント
absolute_space

お礼率 94% (401/425)

ありがとうございます。やはり、かなり古いものなんですね。
投稿日時:2014/03/21 11:14

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 53% (368/684)

VBAがOfficeに実装される前は、マクロシートというものが存在して、マクロを動かすときはこれを開いておく必要がありました。
そのマクロは今でも動くはずなので、シートを開いた状態で「すべてのマクロを表示」してみると、ボタンに割り付けたりすることができますよ。(多分(^_^; )
お礼コメント
absolute_space

お礼率 94% (401/425)

そのExcel4.0マクロは確かに動きますし、業務で実際に使用しています。しかしまあ、VBAに取って代わられた現在、そのマクロのメンテを今後出来る人がいるのか怪しいし、見直しが必要なんですかね。
投稿日時:2014/03/21 11:15
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ