-PR-
解決済み

Excelのマクロについて

  • 暇なときにでも
  • 質問No.111220
  • 閲覧数65
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 71% (256/358)

マクロの保存先を「開いているすべてのブック」にして、
A2~A32をいったん削除した後で、
1月1日から、1月31日を入力して、
最後にA2をアクティブセルにしておく、というマクロを作りました。

1/1と入力すると、普通、1月1日と表示されますよね?

同一ブック、同一シートないでしたら、そのように表示されるのですが、
同一ブック、別シートあるいは、
別ブックで、このマクロを実行すると、
2001/1/1と表示されます。

あとで、セルの表示形式を変えればいいんでしょうが、
この原因が、なぜ、そうなるのかが知りたいです。
(まだ、そのシート内以外だと、マクロが設定できない、
とかの方がわかるんですが。)

また、
同一シートでなくても、
1月1日~1月31日の表示形式のままで、
設定できるマクロがあったら、あわせて教えてください。

作成しているファイルの、
バージョンは、Excel2002ですが、
マクロは、2000と変わらないと思うんですが・・・。
よろしくお願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 50% (17/34)

確かに
同一ブック、別シートあるいは、
別ブックで、このマクロを実行すると、
2001/1/1と表示されますね。

同一ブック、別シートあるいは、別ブックで、
1月1日~1月31日の表示形式にするには、
1月1日~1月31日の表示形式をマクロに意識させる設定が
必要なようです。

その手順は以下のようにします。

マクロの記録中で
1/1と入力し、1月1日と表示された後、

(1) A2セルを右クリックして、セルの書式設定をクリック
(2) セルの書式設定ダイアログボックスの右方の「種類」窓の中が
  1月1日になっているのを、一旦、他の表示をクリックします。
    例えば、2000/1/1をクリック
(3) 次に、再び1月1日をクリック。
(4) 下方の「OK]をクリック。

以上の手順を挿入すれば、良いはずです。
セルA3以降はA2をドラッグしますよね。
  
お礼コメント
himehime

お礼率 71% (256/358)

回答をありがとうございます。

あ、そうか。
マクロだから、表示形式も命令しなおしてあげないといけなかったんですね。
回答をみて、「なるほど」と思いました。

無事にできました。
また何かありましたら、よろしくお願いいたします。
投稿日時 - 2001-07-30 21:03:29

その他の回答 (全2件)

  • 回答No.2
レベル9

ベストアンサー率 42% (21/50)

日付の表示形式が"2001/1/1"となってしまうのは、Excelが日付表示をする際の標準的な表示形式としてその形式を採っているためです。

従って、A2~A32をいったん削除したといっても、"Delete"キーで削除しただけであれば"1月1日"の形式で表示するという「書式設定」が残っています。

ですので、マクロを作成する際に「セルの書式設定」→「表示形式」で"1月1日"の形式になるようなマクロを組んでやれば、新規ブックでも任意の表示形式を再現できると思います。
お礼コメント
himehime

お礼率 71% (256/358)

どうもありがとうございました。

>従って、A2~A32をいったん削除したといっても、"Delete"キーで削除しただけであれば"1月1日"の形式で表示するという「書式設定」が残っています。

この部分で、「げっ。忘れてた。」と思いました。
そうですよね。
Deleteキーだけだと、データしか削除されないんですよね。
念のため、書式も含めた削除に変更したマクロに作り直しました。
本当に助かりました。
投稿日時 - 2001-07-30 21:05:19


  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

参考に作ってみました。

作られたマクロは、個人用マクロブックPERSONAL.XLS に有ると思いますので、その標準モジュールに貼り付けてみて下さい。
月を入力すれば、その月の1日から月末まで『1月1日』の形式で表示します。

Sub 一ヶ月を表示()
  '月の入力
  Dim Tuki As Integer '表示する月
  Dim TukiNissu As Integer '入力月の月日数
  Tuki = Val(InputBox("月を入力して下さい。"))
    If Not (1 <= Tuki And Tuki <= 12) Then
      MsgBox "エラー!!": Exit Sub
    End If

  '初期化する
  Range("A2:A32").ClearContents

  '1日をセットする
  Range("A2").NumberFormatLocal = "m""月""d""日"""
  Range("A2") = Tuki & "/1"

  '月日数を求める(翌月1日の前日日付け))
  TukiNissu = Day(DateSerial(Year(Range("A2")), Tuki + 1, 0))

  '1ヶ月分表示する
  Range("A2").Select
  Selection.AutoFill Destination:=Range("A2:A" & (TukiNissu + 1)), Type:=xlFillDefault

  'A2を選択状態にする
  Range("A2").Select
End Sub
お礼コメント
himehime

お礼率 71% (256/358)

回答ありがとうございました。
一回マクロを全部削除してからやりなおしたので、
残ってないのか、残っているのに、
私の探し方が悪いのか、
元データを紛失いたしました。

でも、前お二人の回答で、思い通りのマクロを作ることができ、
なおかつ、nishi6さんの、VBAのコードで、
大体の意味をつかむことができました。

三人のみなさんの回答を総合して、無事、解決することができました。

nishi6さんには大変申し訳ないのですが、
甲乙つけがたいので、
ポイントは、先着順につけさせていただきますね。

明日になってから締め切りさせていただきます。
本当にみなさん、ありがとうございました。
投稿日時 - 2001-07-30 21:11:28
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

キーワードでQ&A、テーマを検索する
-PR-
-PR-

特集


専門家があなたの悩みに回答!

ピックアップ

ページ先頭へ