• ベストアンサー

VBAで当月の1日を表示するにはどの様なコードを使えば宜しいのでしょうか

VBAでシートAのセルA1に当月の1日を表示させたく思います。 Sheets("A").Range("A1") = Date を使用し、本日の日付を表示させることは判ったのですが、この日付に含まれる月の初日(1日)を表示させる方法をご存知でしたら教えて下さい。 宜しくお願い致します。

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

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

年と月を取り出して、日を1固定で日付を作成する。⇒DateSerial,Year,Month Dim d As Date d = Date ' 本日日付 Range("A1").Value = DateSerial(Year(d), Month(d), 1) ちなみに、その月の最終日は来月の1から1日引く。⇒DateAdd

macha1234
質問者

お礼

早速試しました。 そして希望していた結果が得られました。 早々に回答をいただきまして、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

本日 Sheets("A").Range("A1").Value = Date 初日 Sheets("A").Range("A2").Value = DateSerial(Year(Date), Month(Date), 1) 末日 Sheets("A").Range("A3").Value = DateSerial(Year(Date), Month(Date) + 1, 0)  

macha1234
質問者

お礼

早速試しました。 そして希望していた結果が得られました。 早々に回答をいただきまして、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAのTextBox表示について質問します。

    実は、MicrosoftのExcel内にありますVBAを使ってシート内に記載られている内容を Userform内にあるTextBoxに表示させたいと考えています。 UserformにあるTextBoxは、シートのセルに対してTextBoxを1個配置させています。 例えば・・・セルA1に入力されている文字をTextBox1に表示 セルB1に入力されている文字をTextBox2に表示 セルC1に入力されている文字をTextBox3に表示 セルD1に入力されている文字をTextBox4に表示 セルE1に入力されている文字をTextBox5に表示と言う様な感じで表示したいです。 セル表示範囲は、A1~E24までのセルでTextBoxもTextBox24まで存在します。 TextBox1.Text = ThisWorkbook.Sheets("Sheet1").Range("A1") TextBox2.Text = ThisWorkbook.Sheets("Sheet1").Range("B1") TextBox3.Text = ThisWorkbook.Sheets("Sheet1").Range("C1") TextBox4.Text = ThisWorkbook.Sheets("Sheet1").Range("D1") TextBox5.Text = ThisWorkbook.Sheets("Sheet1").Range("E1") TextBox6.Text = ThisWorkbook.Sheets("Sheet1").Range("A2") TextBox7.Text = ThisWorkbook.Sheets("Sheet1").Range("B2") TextBox8.Text = ThisWorkbook.Sheets("Sheet1").Range("C2") TextBox9.Text = ThisWorkbook.Sheets("Sheet1").Range("D2") TextBox10.Text = ThisWorkbook.Sheets("Sheet1").Range("E2") 以降~途中省略 TextBox120.Text = ThisWorkbook.Sheets("Sheet1").Range("E24") と言う様な・・・ 上記の、この様なコードでして行くと事は可能なんですが・・・ もっと短く出来ないでしょうか?

  • VBAについて

    いつもお世話になっています マクロ・VBA超初心者です。 質問させてください。 現在シート1の完売のセルの欄に○が入っていれば日付をみてシート2の同じ日付の隣のセルに○を入力しようと思っているのですが、シート2の日付を検索はしているんですが入力がいきません Sheet1  ↓セルA1 ↓セルB1  5月26日   26           B1のセルはDAY(A1)にて出してます         完売  A氏     ○             Sheet2  ↓A列   ↓B列 5月  1日  ・  ・  ・  26日    ○           ←シート1の所に○が付いているとシート1セルB1と同じ  27日                  日付の隣のセルに○を入力  28日 VBA Sub test() Sheets("Sheet2").Select Range("A1").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Activate If ActiveCell.Value = Worksheets("Sheet1").Range("B2") Then ActiveCell.Offset(0, 1).Activate If ActiveCell.Value <> "○" Then ActiveCell.Valu = "○" ActiveCell.Offset(0, -1).Activate Else ActiveCell.Offset(0, -1).Activate End If Else End If Loop Sheets("Sheet2").Select Range("A1").Select End Sub どこが間違っているかわからない状態です。 分かりにくい説明ではあるんですが教えてください お願いします。

  • 指定セル値に当月1日を翌月まで維持

    B1セル変更によってマクロを実行したくB1セル値に月が変わったら当月1日が入力され翌月初日切替りまでB1セルに当月/1を入力維持させたいのですがVBAコードが解る方宜しくお願いします。(B1セル当月/1,B2セル当月/2,B3セル当月/3~を入力したいためです)

  • 【Excel VBA】シート表示&ボタン操作

    何度もすみません。 シート表示のコードの続きです。 また、別記事で質問していた件(件名の後者)も合わせて コードに組み込んでいます。 Sheets(actsht).Tab.ColorIndex = 2 '当月分のワークシート見出しの色を白に設定する Sheets(actsht).Range("B3").Value = Sheets("Sheet2").Range("A1").Value 'ワークシート(Sheet2)のA1セルの値を当月分のワークシートのB3セルに代入 Sheets(actsht).Range("B4").Value = Sheets("Sheet2").Range("A2").Value 'ワークシート(Sheet2)のA2セルの値を当月分のワークシートのB4セルに代入 ActiveSheet.Range("A2").Select '翌月分のワークシートのA2セルを選択する Sheets("元データ").Visible = True 'ワークシート(元データ)を表示する Call clear_Click 'フォームボタン(clear)をクリックする Sheets("元データ").Visible = False 'ワークシート(元データ)を非表示にする Exit For 'For文を抜ける ElseIf Anser = vbNo Then 'MsgBoxで"vbNo"を選択した場合 Exit For 'For文を抜ける End If 'If文を終了する End If 'If文を終了する Next 'iの値を1増分する If Flag = O Then 'Flagが0であった場合 MsgBox ("新しいワークシートを作成出来ません。") 'MsgBoxを表示する End If 'If文を終了する End Sub

  • エクセルVBAについて

    こんにちわ! 今、エクセルでAシートの入力した項目をBのシートへデーターが入力できるようなシステムを以下のようにくみました。 そこでBシートにデーターが入力されるのですが20行まで入力すると入力できないようにしたいのですが、なかなか上手くいきません。 A1からF20まで書式のロックを外しそれ以外のセルは保護をかけたのですがその状態でVBAを使って20行以上入力できませんという感じのエラー表示をしたいのですが、どうすればいいでしょうか? VBAは初心者ですが宜しくお願いします。 Private Sub CommandButton1_Click() Dim row As Integer row = WorksheetFunction.CountA(Sheets("date").Columns(1)) + 1 Sheets("date").Cells(row, 1).Value = Range("B2").Value row = WorksheetFunction.CountA(Sheets("date").Columns(2)) + 1 Sheets("date").Cells(row, 2).Value = Range("B3").Value row = WorksheetFunction.CountA(Sheets("date").Columns(3)) + 1 Sheets("date").Cells(row, 3).Value = Range("B4").Value row = WorksheetFunction.CountA(Sheets("date").Columns(4)) + 1 Sheets("date").Cells(row, 4).Value = Range("B5").Value row = WorksheetFunction.CountA(Sheets("date").Columns(5)) + 1 Sheets("date").Cells(row, 5).Value = Range("B6").Value row = WorksheetFunction.CountA(Sheets("date").Columns(6)) + 1 Sheets("date").Cells(row, 6).Value = Range("B7").Value Sheets("統制入力").Select Range("B17").Select ActiveWindow.SmallScroll Down:=-9 Range("B3:B7").Select Selection.ClearContents Range("B1").Select End Sub

  • Excel 2010 VBAで教えてください。

    Excel 2010 VBAで教えてください。 Doubleの配列 Dim A(100) as double に ワークシート "Sheet1" セル A1:A100 の値を一発(For loop等を利用しない) で読み込むにはどうすればよいのでしょうか。 同じく、 Doubleの配列 A(100)を ワークシート "Sheet2" セル B1:B100 に一発で書き出すのはどうすればよいのでしょうか。  Variantにて Dim A as Variant では  A = Sheets("Sheet1").Range("A1:A100") で 読み込めました。 また Sheets("Sheet2").Range("B1:B100")で書き込みできましたが、double等でどうすれば良いのか知りたいです。

  • エクセル VBAの日付計算?について

    現在sheet1にある表をsheet2に転記してゆくVBAを作成しております。sheet1にある日付データセルA1(日のみ)が入っているセルと月初を求めるVBA(DateSerial(Year(Date), Month(Date), 1))を加算して西暦/月/日にしたいのです。 例えば、DateSerial(Year(Date), Month(Date), 1)の答は、2005/05/01になってきます。そこに日付データセルA1が20だとすれば、表示は、2005/05/20となると思います。それをsheet2 セルA1に表示させたいのです。 よろしくお願いします。

  • VBA コマンドボタンにおけるコードについて

    下記のようなコードを作成しました。 これを簡略化するにはどうすれば良いのでしょうか? よろしくお願いします。 Private Sub CommandButton1_Click() Sheets("sheet2").Select Select Case UserForm1.ComboBox1.Text Case Is = Sheets("sheet2").Range("A1").Value Sheets("sheet2").Range("B1").Value = "X" Case Is = Sheets("sheet2").Range("A2").Value Sheets("sheet2").Range("B2").Value = "X" Case Is = Sheets("sheet2").Range("A3").Value Sheets("sheet2").Range("B3").Value = "X" Case Is = Sheets("sheet2").Range("A4").Value Sheets("sheet2").Range("B4").Value = "X" Case Is = Sheets("sheet2").Range("A5").Value Sheets("sheet2").Range("B5").Value = "X" ・ ・ ・ End Select End Sub

  • Excel-VBA rangeプロパティの使い方について

    Excel-VBA rangeプロパティの使い方について VBA初心者です。いろいろ調べたのですが、分からないので教えてください。 ThisWorkbookのSheet1のA1セルに、aというファイルのaというシートの特定のセルの値をコピーしたいです。 コピーする値のセルは、ThisWorkbookで入力した値を基に変数で記述したいです。 例えば、ThisWorkbookのSheet1のC2セルに「D1」と記載していたとして、その値を変数として設定して、最終的にaというファイルのaというシートの「D1」セルをThisWorkbookのA1セルに貼り付けるのが目的です。 この場合の、下記のhensuu = の設定方法について、ご教授願います。 hensuu = ThisWorkbook.Sheets("Sheet1").Range(“A1”)= Workbooks(a).Sheets(a).Range(hensuu)

  • Excel VBAの非表示について(初心者)

    Excel VBAを勉強中の者です。 A列に日付が連続で入っている表で、A1に入力されている一番古い日付から 昨日の日付までを非表示にし、今日の日付を先頭に表示したいと思っています。 Findメソッドで昨日の日付が入っているセルを検索し、A1セルから昨日のセルまでを 非表示にしようと思い下記のようにしてみたのですができませんでした。 Dim i As Range Dim x As Byte Dim y As Byte Set i = Range("A1:A65536").Find(What:=Date-1) x = i.Row Rows("1:x").Hidden = True または x = i.Address Range("A1:x").EntireRow.Select Selection.Hidden = True 教えてください。 よろしくお願いします。