• ベストアンサー

エクセル シート上TextBox(日付)

Sheet上にTextBox=”hiduke”とする このBookを開いた時に 現在に日付にしたいのですが どのようにしたら良いのでしょうか? Private Sub Worksheet_Activate() ならSheetをアクティブにしたら現在の日付に なるのですが・・Bookを開いた時に 現在の日付にしたいです。 すいません教えて下さい。 Private Sub Workbook_Open() Me.hiduke.Value = Format(Now(), "yyyy/mm/dd") End Sub

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

間違い: Me.hiduke.Value = … 正解: Me.worksheets("シート名").hiduke.value = … #TextBoxのオブジェクト名をhidukeとしてあること 勉強のため private sub workbook_Open()  msgbox me.name end sub などのようにThisworkbookに書いて保存し開いてみて,このマクロでの「Me」とは具体的に一体何になるのか調べてみると良いでしょう。

pop2003
質問者

お礼

ありがとうございました 理解できました。 private sub workbook_Open()  msgbox me.name end sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Private Sub Workbook_Open() MsgBox Date Worksheets("Sheet3").TextBox1.Text = Date End Sub Format(Now(), "yyyy/mm/dd")を使う点は略 フォームにコントロールを貼り付ける場合と、シートに直接貼り付ける場合はその後のVBAコードが違う場合があるので注意のこと。 本件はシートに貼り付ける場合とした。表示ーツールバーーコントロールツールボックスーテキストボックスのほうです。 上例はThisworkBookのOpenイベントに書き込むこと。 コントロールはSシートオブジェクトで限定すること。 ーー Me.については 「エクセル VBA me キーワード」でGoogleででも照会して、じっくり勉強のこと。 VBAの市販エレベルの解説書ではほとんど出てこない。使わなくて良い。UserFormの場合Userform1.と書く方が良いと思う。初級・中級までは使わないほうが、コンテナを明確に意識する上で良いだろう。

関連するQ&A

  • エクセル シート上のTextBox(日付)

    今まではForm上にTextBoxを貼り、スピンボタンにて日付を変化させるのは できるのですが、これをシート上で日付を動かすと どのような記述の変化が必要なのでしょうか? TextBoxはhidukeという名でしています!日付は出るのですが スピンボタンは動きません! すいません教えて下さい! Private Sub SpinButton1_SpinDown() Me.hiduke.Value = DateAdd("d", -1, Me.hiduke.Value) End Sub Private Sub SpinButton1_SpinUp() Me.hiduke.Value = DateAdd("d", 1, Me.hiduke.Value) End Sub Private Sub hiduke_Change() Me.hiduke.Value = Format(Now(), "yyyy/mm/dd") End Sub

  • エクセル マクロ Sheet上のTextBox

    シート上にTextBoxがありそこに 名前を記載しています。 そこで今回悩んでいるのが 次の人がこのエクセルBookを開けたとき 前の人の名前があるのにそのまま記載してコピーしてしまう ケースが多いので、Bookを開いた時にTextBox1..Text = "" のように空白にしたいです! どのようにすれば良いか悩んでいます。 Private Sub Worksheet_Activate() TextBox1.Text = "" End Sub これだと他のシートから戻るときにはTextBox1は空白になりますが・・・ 開いた時に空白が良いです!! すいません教えて下さい

  • Excel VBAでの初期設定

    Excel VBA 初心者です。Excelは2013です。VBAでBookを開いたときにあるシートの初期設定をしたいと考えています。Activateイベントを使おうと思いましたがイベントが発生しないことがあるため質問しています。 例として以下のようなコードを記述したとき、sheet1以外を開いて保存している場合にはActivateイベントは発生しますが、sheet1を開いて保存している場合にはイベントが発生しないため初期設定の処理ができませんでした。 対応方法をお分かりの方ご教授いただけないでしょうか。 ============================= '"以下をThisWorkbook"に記述 Private Sub Workbook_Open() '②Worksheets("sheet2").Activate も入れれば Activateイベントは発生する Worksheets("sheet1").Activate '①もともと sheet1がActiveで保存されていた場合、Activateイベントは発生しなかった End Sub ============================= '"以下をsheet1"に記述 Private Sub Worksheet_Activate() '初期設定処理 MsgBox "sheet1の初期設定をしました" End Sub ============================= 宜しくお願いします。

  • 日付の取得VB.NET.では

    自動で日付をTEXTboxに取得する場合 VB.6.0では Private Sub Timer1_Timer() TexDate.Text=Format(Now,"yymm月dd日  hh時mm分") end sub でOKでしたが。VB.NETではどう書けば良いのでしょうか?

  • VBAのTextBoxに今日の日付

    いつもお世話になります。 Windows7 Excell2010 です。 ユーザーフォームのTextBoxには下記のようにマクロを記述しています。 Private Sub UserForm_Initialize() UserForm2.TextBox1.Text = Date End Sub その結果下記のように表示されます。 13/7/16(火) シートのセルにはこのまま入力されるので、 セルの書式 設定で 「mm/dd」にしてもそのままの 「13/7/16(火)」になりす。 ご指導を仰ぎたいのはユーザーフォームのTextBoxで 「07/16」にして最終的にはセルも同じくしたい。 ご協力ください。

  • エクセル デバッグできるのとできないのがある

    シートイベントについて教えてください。 シートモジュールに --------------------------------------------------------- Option Explicit Private Sub Worksheet_Activate() MsgBox "" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "" End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "" End Sub --------------------------------------------------------- と記載した時に、 F8で動かせるのは、Worksheet_Activateだけなのですがなぜでしょうか? ほかのイベントは、F8で実行させても、OSの音が鳴るだけで、マクロの実行はされません。 ご回答よろしくお願いします。

  • エクセルの使用期限の付け方

    No.361737を参照して、 エクセルに使用期限をつけようとしたのですが、 日付の反応がうまく作動しません。 下記のVBAのまま使用すると どのような日付でもロックがかかり メッセージボックスが表示され Nowのあとの【<】を【>】にすると どのような日付でもロックが解除されてしまいます。 このような場合、どこかを修正すればうまく作動するようになるでしょうか? よろしくお願いします。 下記のVBAはNo.361737よりの抜粋です。 Private Sub Workbook_Open() If Now < "02/09/19" Then 'ここで期限を決める  ActiveWorkbook.Unprotect "AAA" 'ブック保護解除   Sheets("Sheet1").Visible = True   Sheets("Sheet1").Activate   Sheets("Sheet2").Visible = False  Else'----期限後ならばメッセージを表示   MsgBox "期限切れ"  End If ActiveWorkbook.Protect "AAA" End Sub

  • エクセル VBA? 関数?

    book1(データ入力用)とbook2(送信用)で作業します。 必ずbook1→book2の順番で開きます。 book1には1ヵ月の日数分のsheetがあり(約30sheet)、作業中のsheetのA1の日付を、book2を開いたときにbook2のB4に自動的に表示される様にしたいです。 関数でも可能であればOKですが、できればVBAの文章をおしえてください。Private Sub Worksheet_Activate()で可能でしょうか??? よろしくお願いします。

  • 日付抽出でエラーします、教えてください。

    s1シートB列に日付が連続1月~数ヶ月分入っています(書式日付は 「3/13」の形式で入力されてます) この中から例えば3月分だけをフィルタして、それを別ブック保存したいのです。 インプットボックスで「09/03」yy/mmと入力すると フィルターを掛けるところでデバックエラーになります 3/13形式の入力を、どのようにして09/03と認識させるのか 上手く抽出させるには、どうしたらいいのでしょうか?悩んでいます。 ご指導ねがいますm(_ _)m Private Sub CommandButton1_Click() Dim Wh As Worksheet, ws As Worksheet Dim Hiduke As Variant, Uwagaki As Integer, Owarimsg As Integer Dim umu Dim dumu '日付入力 Hiduke = Application.InputBox("年月データ入力", , Format(Hiduke, "yy/mm")) If Hiduke = "Boolean" Or Hiduke = False Or Hiduke = " " Then Exit Sub Do While Hiduke = "" Hiduke = Application.InputBox("日付入力されてません", , Format(Hiduke, "yy/mm")) Loop 'sheetからの日付データ抽出 Worksheets("s1").Activate Range("B6").AutoFilter Field:=1, Criteria1:="=" & Format(Hiduke, "yy/mm") Worksheets("s1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy '有無確認 Set dumu = Range("B7").CurrentRegion umu = dumu.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1 If umu = 0 Then MsgBox "日付データなし" GoTo Syuryo Else '保存 Syori: Application.ScreenUpdating = False Application.DisplayAlerts = False Set wb = ActiveWorkbook wb.SaveAs Filename:="C:\お仕事\年月度別" & "\" & Format(Hiduke, "yymm") & ".xls" Application.CutCopyMode = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True End If Syuryo: Worksheets("s1").AutoFilterMode = False Application.CutCopyMode = False Worksheets("s1").Activate Range("A1").Select End Sub

  • EXCEL VBAにてのワークシート作成

    エクセルのVBAにてワークシートを作成することで困っています。 自分で書き込んだのは Private Sub CommandButton1_Click() Worksheets("原紙").Copy ActiveSheet.Name = TextBox1 Worksheets.Add After:=Worksheets(2) End Sub Private Sub UserForm_Initialize() TextBox1 = Format(Date, "yy.mm.dd") End Sub 実行したいことはCommandButton1クリック時に 左から2番目にあるワークシート 原紙を テキストボックス1に入力されている(日付) 名前を付けて左から3番目に新規で作成したいのですが 思うように動かずエラーが出てしまいます。 どの様に修正すれば宜しいでしょうか? またクリック時にすでにテキストボックス1と同じ 名前のワークシートが存在した場合はそのワークシートを Activeにしたいのですがどの様に書き込めば宜しいでしょうか? 重ね重ねですが宜しくお願いいたします。

専門家に質問してみよう