
マクロの保存先を「開いているすべてのブック」にして、
A2~A32をいったん削除した後で、
1月1日から、1月31日を入力して、
最後にA2をアクティブセルにしておく、というマクロを作りました。
1/1と入力すると、普通、1月1日と表示されますよね?
同一ブック、同一シートないでしたら、そのように表示されるのですが、
同一ブック、別シートあるいは、
別ブックで、このマクロを実行すると、
2001/1/1と表示されます。
あとで、セルの表示形式を変えればいいんでしょうが、
この原因が、なぜ、そうなるのかが知りたいです。
(まだ、そのシート内以外だと、マクロが設定できない、
とかの方がわかるんですが。)
また、
同一シートでなくても、
1月1日~1月31日の表示形式のままで、
設定できるマクロがあったら、あわせて教えてください。
作成しているファイルの、
バージョンは、Excel2002ですが、
マクロは、2000と変わらないと思うんですが・・・。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
確かに
同一ブック、別シートあるいは、
別ブックで、このマクロを実行すると、
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をドラッグしますよね。
回答をありがとうございます。
あ、そうか。
マクロだから、表示形式も命令しなおしてあげないといけなかったんですね。
回答をみて、「なるほど」と思いました。
無事にできました。
また何かありましたら、よろしくお願いいたします。
No.3
- 回答日時:
参考に作ってみました。
作られたマクロは、個人用マクロブック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
回答ありがとうございました。
一回マクロを全部削除してからやりなおしたので、
残ってないのか、残っているのに、
私の探し方が悪いのか、
元データを紛失いたしました。
でも、前お二人の回答で、思い通りのマクロを作ることができ、
なおかつ、nishi6さんの、VBAのコードで、
大体の意味をつかむことができました。
三人のみなさんの回答を総合して、無事、解決することができました。
nishi6さんには大変申し訳ないのですが、
甲乙つけがたいので、
ポイントは、先着順につけさせていただきますね。
明日になってから締め切りさせていただきます。
本当にみなさん、ありがとうございました。
No.2
- 回答日時:
日付の表示形式が"2001/1/1"となってしまうのは、Excelが日付表示をする際の標準的な表示形式としてその形式を採っているためです。
従って、A2~A32をいったん削除したといっても、"Delete"キーで削除しただけであれば"1月1日"の形式で表示するという「書式設定」が残っています。
ですので、マクロを作成する際に「セルの書式設定」→「表示形式」で"1月1日"の形式になるようなマクロを組んでやれば、新規ブックでも任意の表示形式を再現できると思います。
どうもありがとうございました。
>従って、A2~A32をいったん削除したといっても、"Delete"キーで削除しただけであれば"1月1日"の形式で表示するという「書式設定」が残っています。
この部分で、「げっ。忘れてた。」と思いました。
そうですよね。
Deleteキーだけだと、データしか削除されないんですよね。
念のため、書式も含めた削除に変更したマクロに作り直しました。
本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/20 16:37
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル シート内の一番下のセ...
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで複数のシートのクリ...
-
マクロ1があります。 A1のセル...
-
【エクセル】フリーワード検索...
-
Excelで数字を入れたら対応する...
-
エクセルで特定の行だけ行削除...
-
エクセルのセルの塗りつぶしシ...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
エクセルで○をつけるマクロ設定
-
エクセル2013で作業完了報告書...
-
エクセル上にシェイプで二重丸...
-
エクセルのワークシート(テン...
-
複数のセル一括削除
-
【エクセルVBAについて】セ...
-
エクセルを開いたときに実行す...
-
エクセルVBAコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
マクロ1があります。 A1のセル...
-
エクセルで複数のシートのクリ...
-
Excelのシート上のShapeにイベ...
-
Excelで数字を入れたら対応する...
-
【エクセル】フリーワード検索...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
エクセル シート内の一番下のセ...
-
EXCELのダイアログシートって、...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
指定値をマクロで検索&シート移動
-
エクセル:セル内の文字列の最...
-
excel定数の違いについて。xlAu...
-
Excelにて、同じ画像を複数のセ...
-
Excelマクロでブック全体を検索...
-
エクセルでマクロを作りすぎた...
-
エクセルVBAで実行中画面を...
-
シートではなくBOOK間で重複し...
おすすめ情報