重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ExcelのフッターにExcelの名称とバージョンが入るように設定する方法を教えて下さい。

例「Excel2003 ver.11.0」
 
共通のドライブに保存されているExcelファイルを複数名が編集したりプリントしたりします。
その複数名は自分の所有するパソコンで編集・プリントするのですが、Excel2000の人もいれば、Excel2003の人もいます。
それぞれの使用者が編集後プリントする時に、フッター部分にExcelの名称とバージョンが入るようにしたいです。
フッター部分が無理ならば、セル上でも構いません。
関数を使ってできるような話を聞いたことがあります。

宜しくお願いします。

A 回答 (4件)

セル上に関数で表示するだけでよければ、こんな感じでしょうか。



="Excel"&CHOOSE(INFO("release")-4,"5.0",,95,97,2000,2002,2003,2007)&" (Ver. "&INFO("release")&")"

Excel2000,2002,2003,2007で動作確認。

ご参考まで。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
この度は大変ありがとうございました。
マクロを組まずに解決したかったのでまさに私が切望していた関数でした。
すばらしい回答をどうもありがとうございました。

お礼日時:2008/10/21 22:01

こんばんは。



関数では、2000以降なら、このようにすればよいです。

=LOOKUP(INFO("release"),{"9.0",2000;"10.0",2002;"11.0",2003;"12.0",2007})

ご質問とは直接関係がなくなりますが、

Application.Version は、Clng 関数や、CInt 関数は使えません。

97には、最初 8.0
その後、8.0 a ~ 8.0 n まで存在します。

ですから、
CInt(Application.Version) や Clng(Application.Version)
ではなく、Val 関数を用います。

http://officetanaka.net/excel/vba/tips/tips77.htm

で書かれている内容は、9 以上ですから問題はありませんが、97では、エラーが発生します。
しかし、内容的に、

>Sub Sample2()
> If CInt(Application.Version) > 10 Then
> MsgBox "OK"
> Else
> MsgBox "NG"
> End If
>End Sub

こういう構文は、実際のコードでは使えません。この場合は、Directive (ディレクティブ)を用います。そのまま入れると、IFの分岐内でエラーが発生する可能性が極めて高くなります。97 とそれ以上のUserForm のモードや、Excel 2000 とExcel 2003 の間の AutoRecover のTrue, False などが挙げられます。これらの分岐は、当然ですが、上記の分岐ではエラーが発生します。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
この度は、ご回答を頂きましてどうもありがとうございました。
大変参考になりました。
ご回答頂きましたこと、心から感謝いたします。
本当にありがとうございました。

お礼日時:2008/10/21 22:17

INFO関数を使えばExcelのバージョンが返されます。


=INFO("release")

zap35さんが言われるように
”EXCEL***とVersion番号は1:1で対応する”
のなら
対応表を作っておいて、そこからExcelの名前を引っ張り出せば良いかも知れません。

下記のようにすればOSのバージョンが返されます。
=INFO("osversion")
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
この度は、ご回答を頂きましてどうもありがとうございました。
ご回答頂きましたこと、心から感謝いたします。
本当にありがとうございました。

お礼日時:2008/10/21 22:10

>関数を使ってできるような話を聞いたことがあります


マクロを使わないとできないと思います。こんなマクロでもできそうですがEXCEL***とVersion番号は1:1で対応するみたいですね。
http://officetanaka.net/excel/vba/tips/tips77.htm

マクロはALT+F11でVBE画面を開き、VBAProjectの「ThisWorkbook」を右クリック→コードの表示で開く画面に貼り付けてください。
Bookを一旦保存し、再度開くときにFooterに「EXCEL2003 Ver11.0」のような文字列を埋め込みます。

Private Sub Workbook_Open()
Dim cstExcel, cstVersion
Dim idx As Integer
 cstExcel = Array("EXCEL5.0", "EXCEL95", "EXCEL97", "EXCEL2000", _
         "EXCEL2002", "EXCEL2003", "EXCEL2007")
 cstVersion = Array(5, 7, 8, 9, 10, 11, 12)
 ActiveSheet.PageSetup.RightFooter = ""
 For idx = 0 To UBound(cstVersion)
  If CInt(Application.Version) = cstVersion(idx) Then
   ActiveSheet.PageSetup.RightFooter = _
      cstExcel(idx) & " Ver" & Application.Version
   Exit For
  End If
 Next
End Sub
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
この度は、ご回答を頂きましてどうもありがとうございました。
今回はマクロを組まずに解決したかったので、ポイント加算にならず申し訳ありません。
ご回答頂きましたこと、心から感謝いたします。
本当にありがとうございました。

お礼日時:2008/10/21 22:10

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