• ベストアンサー

【ワード】 ドロップダウンリストと年齢表示VBAは同文書内に共存できるでしょうか?

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

ありがとうございました。 こんばんは。Wendy02です。 >自分で勉強すれば良いのですが、なかなか取っ掛かりがわからなく、困っています。教えていただいたことを、自分の頭に入るよう勉強しなおします。 私は、たまたま、覚えるための時間というものがあっただけです。実際に私は、覚えられるとは思ってはいませんでした。語学がなかなか覚えられなくて、その代わりにはじめたのがVBAでした。 >誕生日が過ぎたら自動で一日更新するVBAを教えていただきたく思います。 たぶん、「一歳」更新だと思います。原理を変えれば、毎日、その日の日付も出せますね。 マクロは、必ず、ThisDocument に登録してあることが条件です。 以下を前のコートすべて、上書きしてください。そのドキュメントを一旦保存すれば、後は、自動的に設定されます。 'Option Explicit '------------------------------------------ Private Today As Date Private Sub Document_Open() 'ドキュメントを開けると起動されるマクロ Today = Date Call ThisDocument.MyBirthday End Sub Sub MyBirthday()  Dim Txt1 As String  Dim i As Integer  Dim myDate As Variant  Dim tmpDate As Variant  Txt1 = Me.FormFields("Text1").Range.Text  On Error GoTo EndLine  If IsDate(Txt1) Then   myDate = CDate(Txt1)   tmpDate = CStr(Year(Today)) & "/" & Format(myDate, "mm/dd")   tmpDate = CDate(tmpDate)   i = DateDiff("yyyy", myDate, Today)   If tmpDate > Date - 1 Then     i = i - 1 '今日の日が、誕生日が過ぎるまで「-1」   End If   Me.FormFields("Text2").Result = CStr(i)    End If EndLine: End Sub '------------------------------------------

saitama090
質問者

お礼

なんとご親切に、コードまでご丁寧に作っていたたいて、泣けてくるほどうれしいです。 早速、貼り付けてみました。 ところが、年齢表示のテキスト2が、-88歳になってしまいました。 生年月日のテキスト1は 昭和62年12月22日 です。 コンピューターの日付は、18年12月22日です。 教えていただいたコードを貼り付ける前は、17歳か18歳になっていました。(誕生日をずらして試していたので、年齢がずれましたが、正常な年齢表示でした) 頼ってばかりで申し訳ないのですが、なぜ、年齢がマイナス表示になったのか、教えていただけるでしょうか。 VBAのThisDocumentには、以前のコードを削除し、下記のとおり貼り付けました。余分なものも貼り付けてしまったのでしょうか? すみません。よろしくお願いいたします。 'Option Explicit '------------------------------------------ Private Today As Date Private Sub Document_Open() 'ドキュメントを開けると起動されるマクロ Today = Date Call ThisDocument.MyBirthday End Sub Sub MyBirthday()  Dim Txt1 As String  Dim i As Integer  Dim myDate As Variant  Dim tmpDate As Variant  Txt1 = Me.FormFields("Text1").Range.Text  On Error GoTo EndLine  If IsDate(Txt1) Then   myDate = CDate(Txt1)   tmpDate = CStr(Year(Today)) & "/" & Format(myDate, "mm/dd")   tmpDate = CDate(tmpDate)   i = DateDiff("yyyy", myDate, Today)   If tmpDate > Date - 1 Then     i = i - 1 '今日の日が、誕生日が過ぎるまで「-1」   End If   Me.FormFields("Text2").Result = CStr(i)    End If EndLine: End Sub '------------------------------------------

saitama090
質問者

補足

すいません!! 文書を保存して閉じて、再度開いたところ、きちんと18歳になっていました。 先ほどのお礼欄の年齢のマイナス表示はもう出ません。 解決しました。すみませんでした。 ただ、【フォームの保護】をかけていると、文書を開いたときに、年齢表示のVBAがうまく作動しないようです。 開いたときに下記のメッセージがでました。 実行時エラー'4605' オブジェクトにより文書の保護されている箇所が参照されているためメソッドまたはプロパティが使用できません。 [継続](灰色) [終了] [デバック] [ヘルプ] で、デバックを押すと、マクロの記述シートが開き、黄色いマーカーで、 Call ThisDocument.MyBirthday の所が示されています。 そして、自分で文書に戻り、【フォームの保護】を解除し、マクロの画面に戻り、ビデオの再生ボタンにあるような三角マークの【継続】を押したところ、きちんと年齢が表示されました。 [ツール]-[文書の保護]-[保護対象外をフォームフィールド]にして[OK]にして閉じていますが、変わりません。 やはり、ドロップダウンリスト【フォームの保護】と年齢表示VBAは両立できないのでしょうか? 両立できない場合は、ドロップダウンリストをあきらめます。 どうか、教えてください。よろしくお願いします。

関連するQ&A

  • Wordでドロップダウンリストを作る時

    こんにちは。 Wordでドロップダウンフォームフィールド機能を使って、 文書内にドロップダウンリストを作成する時、 フォームの保護をかけないとドロップダウンリストが使えないと思うのですが、文書内に他にも手入力する部分がたくさんある場合はどのようにしたらよいのでしょうか。 例えば、氏名、会社名などを入力し、会社の業種などをドロップダウンリスト一覧から選ばせる場合などです。 ドロップダウンリストから選択できるようにすると、 他の項目に入力できないので困っています。 どなたか詳しい方がいらっしゃいましたら教えていただけますでしょうか。よろしくお願いします。

  • ドロップダウンリストのアイコンの行方

    こんにちは。 いつもお世話になっております。 今回、VBにてドロップダウンリストを作成したいと 思っているのですが、ユーザーフォームのアイコン にドロップダウンリストがなく、困っています。 コンポーネントから追加するのかと考えたのですが、 ドロップダウンリストらしきものが見つかりません。 ドロップダウンリストを使用する方法をご存知の方 がいらっしゃいましたら、教えていただけたらと 思います。 よろしくお願い致します。

  • 特定のドロップダウンリストを表示させるには?

    ホームページで、メールフォームの一部にドロップダウンリストを使用しています。通常はユーザーの方にリストから一つ選んでもらっているのですが、特定のリンク元からメールフォームのページに飛んだときにのみ、あらかじめ指定のリストを選択状態にしておきたいと考えています。 つまり、デフォルトのドロップダウンリストを表示させる場合と、それとは異なるリストを表示させる場合とを使い分けたいのですが・・・可能でしょうか。 HTMLか、JavaScriptか、CGIか・・・いろいろ調べてみたのですが、分かりませんでした。 どなたか、教えてください!!

    • ベストアンサー
    • HTML
  • vbaでIE制御によりドロップダウンリスト表示

    こんばんは。 VBAでIEの操作をしています。 IEのドロップダウンリストはマウスでクリックすると、リストを表示します。 このリストを表示させるということまでをVBAで実現したいです。 用途:   Webアプリが仕様通りのドロップダウンリストを表示できることのテストに必要です。   ドロップダウンリストを表示させた状態で、画面をキャプチャして、この画面キャプチャ   のリストと仕様のリストを比較して、試験結果を評価したいです。   ドロップダウンリストがいろんな画面のいろんな箇所にあって、手作業がいやなんです。 いろんな画面を表示して、画面キャプチャをとるマクロは完成しています。 大変お手数ですが、宜しくご教示ください。

  • VBAでドロップダウンリストを連動させたものを作るには?

    VBAでドロップダウンリストを連動させたものを作ることが出来ますでしょうか? 今まで入力規則の設定をつかって見ていましたがどうやら実現不可能と思われることが分かってきました。 VBAでの連動したリストの代替案を考えていますが・・・ いい方法は無いでしょうか? このページのようなことがやりたいと思っています。 http://www.relief.jp/itnote/archives/000822.php

  • 【Excel】シート上のドロップダウンリストから検索するには

    教えてください! ドロップダウンリストをsheet1にフォームツールバーから描きます。 その右側に同じフォームよりボタンを描き「検索」ボタンとします。 ドロップダウンリストにはsheet2のA1:A5を表示させます。 ドロップダウンリストでA1を選択し、検索ボタンを押すと sheet3のA1を表示させる記述はどうなるのでしょうか? A1だけではなくA2・A3・A4を選択し、検索ボタンを押すと A2はsheet4、A3はsheet5という風に表示させたいのです。 よろしくお願いします。

  • ドロップダウンリストが開かないのは何故?

    Windows8.1で、MS-Office2010を利用しています。 VBAで、ドロップダウンリストを組み込んで利用しているのですが ある日、突然、このドロップダウンリストが開かなくなりました。 設定は何も変えていませんし、ウィルス感染もしていません。 ドロップダウンリストが開かなくなった直後に、ウィルス・スキャンを 実施しましたが、ウィルスは検知されませんでしたから。 仕方なく、MS-Office2010をアンインストールした後に 再度インストールしてみましたが、症状は全く変わりませんでした。 どうすれば、元のようにドロップダウンリストが開くようになるのでしょうか? 宜しくご指導願います。

  • excleVBAでドロップダウンリストから

    Excleで社員表のような個人情報リストをVBAを使ってドロップダウンリストから選択し、選択した個人情報をセルのフォームに表示させる。といったマクロを作りたいのですが、VBAについてはほぼ、無知と言っていいほど分かりません。 なので↑のようなマクロのコードを教えてもらえないでしょうか?駄文で分かりにくいかと思いますので下に具体例を載せておきます。 「社員リスト(ドロップダウンリスト形式)から社員名を選択」 ↓ 「選択した社員の個人情報をセルのフォームに表示させる」 といった形です。よろしくお願いします。

  • word2007でのドロップダウンリスト操作方法

    word2007を最近使用し始めた者です つい先日まで2003を使用していました 2003でドロップダウンリストを含む 文書テンプレートを作成したのですが 2007でひらいた場合 どのように操作したらドロップダウンリストが使えるようになるのか 分からなくなってしまいました リスト部分をダブルクリックすると ドロップダウンフォームフィールドは表示されるのですが リストが選択できるようにするにはどうすれべいいのでしょうか 教えてください!

  • ドロップダウンリストを大きくしたい。

    エクセル2000です。 入力規制でドロップダウンリストからの選択で入力しています。 リストデータが30件あったとして、ドロップダウンリスト内にその30件一度に表示させることはできないでしょうか?(10件程度しか表示されず、スクロールさせています) または、表示件数を増やすような設定は、ないでしょうか?