Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6745 / 13644 ツリー ←次へ | 前へ→

【43375】オブジェクトの更新 kenちゃん 06/10/12(木) 10:06 質問[未読]
【43381】Re:オブジェクトの更新 ハチ 06/10/12(木) 15:09 発言[未読]
【43383】Re:オブジェクトの更新 kenちゃん 06/10/12(木) 16:23 発言[未読]
【43385】Re:オブジェクトの更新 ハチ 06/10/12(木) 17:03 回答[未読]
【43386】Re:オブジェクトの更新 kenちゃん 06/10/12(木) 17:37 発言[未読]
【43387】Re:オブジェクトの更新 ハチ 06/10/12(木) 19:12 発言[未読]
【43402】Re:オブジェクトの更新 ichinose 06/10/13(金) 8:05 発言[未読]

【43375】オブジェクトの更新
質問  kenちゃん  - 06/10/12(木) 10:06 -

引用なし
パスワード
   よろしくお願いします。
bookにオブジェクトを貼付(カレンダー)いるのですが
これを月が変わったら更新したいのですが構文がよくわかりません
インプットboxで日付入力(Q1)したいと思っているのですが
またインプットboxにはあらかじめQ1のデータを取得した日付を
表示させたいのですが教えてください。
Sub 編集()
  ActiveSheet.Shapes("Object 21").Select
  Selection.Verb
  Range("Q1").Select
  ActiveCell.FormulaR1C1 = "11/1/2006"
  Range("R1").Select
  ActiveWorkbook.Save
  ActiveWindow.Close
  ActiveWindow.WindowState = xlMaximized
End Sub

【43381】Re:オブジェクトの更新
発言  ハチ  - 06/10/12(木) 15:09 -

引用なし
パスワード
   ▼kenちゃん さん:
>よろしくお願いします。
>bookにオブジェクトを貼付(カレンダー)いるのですが
>これを月が変わったら更新したいのですが構文がよくわかりません
>インプットboxで日付入力(Q1)したいと思っているのですが
>またインプットboxにはあらかじめQ1のデータを取得した日付を
>表示させたいのですが教えてください。

わからないところが、どこかわかりません。
月が変わったら ですか?
InputBoxでQ1の内容をデフォルトで表示させる方法 ですか?

↓のマクロはなんでしょう?

>Sub 編集()
>  ActiveSheet.Shapes("Object 21").Select
>  Selection.Verb
>  Range("Q1").Select
>  ActiveCell.FormulaR1C1 = "11/1/2006"
>  Range("R1").Select
>  ActiveWorkbook.Save
>  ActiveWindow.Close
>  ActiveWindow.WindowState = xlMaximized
>End Sub

【43383】Re:オブジェクトの更新
発言  kenちゃん  - 06/10/12(木) 16:23 -

引用なし
パスワード
   ▼ハチ さん:
返事ありがとうございます。
説明へたですね。
あの〜貼り付けたオブジェクト(カレンダ)を月が変わったら編集で開き
たとえば12月になった時にQ2の日付の値をInputして更新したいと
思ったものですから質問させて貰いました。下のマクロは
Q2に直接手入力で実行したマクロです。これでも更新(変更)可能
なのですが他のものも利用するためInputBoxを表示させそこに
2006/12/1を入力Q2へ転記→MsgBox”日付を更新します”→更新完了
としたいのですが説明わかりますか。

>>よろしくお願いします。
>>bookにオブジェクトを貼付(カレンダー)いるのですが
>>これを月が変わったら更新したいのですが構文がよくわかりません
>>インプットboxで日付入力(Q1)したいと思っているのですが
>>またインプットboxにはあらかじめQ1のデータを取得した日付を
>>表示させたいのですが教えてください。
>
>わからないところが、どこかわかりません。
>月が変わったら ですか?
>InputBoxでQ1の内容をデフォルトで表示させる方法 ですか?
>
>↓のマクロはなんでしょう?
>
>>Sub 編集()
>>  ActiveSheet.Shapes("Object 21").Select
>>  Selection.Verb
>>  Range("Q1").Select
>>  ActiveCell.FormulaR1C1 = "11/1/2006"
>>  Range("R1").Select
>>  ActiveWorkbook.Save
>>  ActiveWindow.Close
>>  ActiveWindow.WindowState = xlMaximized
>>End Sub

【43385】Re:オブジェクトの更新
回答  ハチ  - 06/10/12(木) 17:03 -

引用なし
パスワード
   ▼kenちゃん さん:
>▼ハチ さん:
>返事ありがとうございます。
>説明へたですね。
>あの〜貼り付けたオブジェクト(カレンダ)を月が変わったら編集で開き
>たとえば12月になった時にQ2の日付の値をInputして更新したいと
>思ったものですから質問させて貰いました。下のマクロは
>Q2に直接手入力で実行したマクロです。これでも更新(変更)可能
>なのですが他のものも利用するためInputBoxを表示させそこに
>2006/12/1を入力Q2へ転記→MsgBox”日付を更新します”→更新完了
>としたいのですが説明わかりますか。

Q1の日付が変わったら云々・・のあたりは完成していて
InputBoxで日付を更新する方法がわからない(デフォルトありで)ということですね。
どこがわからないのか ハッキリしているとレスもつきやすいと思います。

こんな感じですか?
>→MsgBox”日付を更新します”→更新完了
このあたりは考えて入れてみてください。

Sub Test()
  Dim MyDate As Date
  
  MyDate = InputBox("日付を指定", , Range("A1").Value)
  If IsDate(MyDate) = False Then
    MsgBox "日付を指定してください"
    Exit Sub
  End If
  Range("A1").Value = MyDate
End Sub

【43386】Re:オブジェクトの更新
発言  kenちゃん  - 06/10/12(木) 17:37 -

引用なし
パスワード
   ▼ハチ さん:
返事ありがとうございます。
>Q1の日付が変わったら云々・・のあたりは完成していて
>InputBoxで日付を更新する方法がわからない(デフォルトありで)ということです>ね。
説明が伝わらなかったみたいです。
リンク先のカレンダー(オブジェクト)を編集状態にしてオブジェクトの
Q1に日付を入力し(ココにInputBoxがでる)→更新→終了としたいのです。
できませんか?

【43387】Re:オブジェクトの更新
発言  ハチ  - 06/10/12(木) 19:12 -

引用なし
パスワード
   ▼kenちゃん さん:
>説明が伝わらなかったみたいです。
>リンク先のカレンダー(オブジェクト)を編集状態にして

ふむふむ。
する必要があるかどうかは別にしてわかりました。

>オブジェクトのQ1に日付を入力し

これのあたりから意味がわかりません。
オブジェクトのQ1ってなんでしょうか?
Range("Q1")のことですか?

>(ココにInputBoxがでる)→更新→終了としたいのです。

なにを入力するInputBoxなのですか?
勝手な解釈だと・・・
Q1に入力された日付を、オブジェクトのテキストに貼り付けたい。
そこで"このオブジェクトを更新しますか?"YesNo みたいな感じかなぁと。
この場合に、貼り付けるテキストを再度編集できる状態にしたいので
InputBoxを使い、デフォルトにはQ1の値を表示したいってことですか?

この内容だと
Sub Test()
  Dim MyDate As Date
 
  MyDate = InputBox("日付を指定", , Range("A1").Value)
  If IsDate(MyDate) = False Then
    MsgBox "日付を指定してください"
    Exit Sub
  End If
  
  'Range("A1").Value = MyDate ←これを変更すればできると思います。
End Sub

>できませんか?

できるかどうかを考えるのは私ではなくて、kenちゃんさんです。
少し前に書き込みされていましたが、ここは作成依頼掲示板ではありません。
「自分でやってみてわからないところ」を質問する場です。
提示したサンプルをそのまま実行すれば良いワケではないと思います。

【43402】Re:オブジェクトの更新
発言  ichinose  - 06/10/13(金) 8:05 -

引用なし
パスワード
   kenちゃん さん、ハチさん、おはようございます。


以下のコードのShapes("Object 21")がカレンダーコントロール
ということですか?
(デフォルトはCalendar1なんていう名前なんですけどね!!)

>Sub 編集()
>  ActiveSheet.Shapes("Object 21").Select
>  Selection.Verb
>  Range("Q1").Select
>  ActiveCell.FormulaR1C1 = "11/1/2006"
>  Range("R1").Select
>  ActiveWorkbook.Save
>  ActiveWindow.Close
>  ActiveWindow.WindowState = xlMaximized
>End Sub


もし、このObject 21がカレンダーコントロール
だとすると
Sub test()
  Dim indate As Variant
  With ActiveSheet.OLEObjects("Object 21")
    indate = Application.InputBox("input date", , Format$(.Object.Value, "yyyy/mm/dd"), , , , , 2)
    If TypeName(indate) <> "Boolean" Then
     If IsDate(indate) Then
       .Object.Value = CDate(indate)
       End If
     End If
    End With
End Sub

こんなコードを試してみてください。

「Object 21」が違うものだとすると、
このオブジェクトの説明が必要ですね!!

6745 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free