質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • VBScript

    221questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

VBScrit テキストの内容をinputboxに表示

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 122

skygo

score 5

はじめて利用させていただきます。

早速ですが現在、VBScriptを勉強をかねて作成しております。
下記のような複数行からなるテキストの内容を、行ごとにinputboxに表示し
更新するような処理を実現したいのですが、ご支援頂けませんでしょうか。

■テキスト

タイトル1=A
タイトル2=B
タイトル3=C
タイトル4=D

タイトル10=K

知識が乏しく、下記(一部抜粋)ではどうしてもテキストの内容が1度のiputboxで表示されしまいます。

Set objFile = objFso.OpenTextFile("c:\test.txt")
txtvalue = objFile.ReadAll
afile = Inputbox(txtvalue)

Set iniFile = objFso.CreateTextFile("c:\text.txt")  

iniFile.WriteLine(afile)

行ごとにipuntboxを行数分表示し、かつ上記A・B・Cだけを表示できるのが理想なのですが、ご教授頂けませんでしょうか。
※タイトルの文字数は統一

どうぞよろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

1行ずつ読み込んでInputboxに表示するのであればこんな感じでできるかと思います。

Do While objFile.AtEndOfStream <> True
    txtvalue = objFile.ReadLine
    afile = Inputbox(txtvalue)
Loop


最初の3行のみということなら3回繰り返したらループを抜けるなど条件を適宜追加してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/29 14:16

    早々にご回答ありがとうございます!

    こちらの質問の仕方が悪かったのですが、テキストに記述されている行数ごとにinputboxを表示して
    1行ごと更新するというのが目的となります。
    こちらの例で言いますと、タイトル1=Aを初期値としてinputboxを表示、タイトル2=Bを初期値としてinputboxを表示・・・といったように、1行ずつ更新したい次第です。

    伝わりにくくて申し訳ございません。
    引き続き、ご支援頂けますと幸いです。

    キャンセル

  • 2018/06/29 14:19

    ん?一行ずつ処理されないですか?
    それとも書き込みの処理がないことを指摘されています?
    それとも3つのinputboxを同時に表示したいのでしょうか?
    回答したのは「テキストの内容が1度のiputboxで表示されしまいます」の修正方法です。

    キャンセル

  • 2018/06/29 14:40

    何度も申し訳ございません。
    ご教示頂いたコードで試したところ、inputboxのコメント欄(テキストボックスではなく)にテキストの内容が一覧で表示された為、間違った伝わり方をしてしまったのかと思いました。
    仰せのとおり、"テキストの内容を行数分inputboxを分けて表示する"というのが目的なので
    もう一度見直してみて、試してみます!

    キャンセル

  • 2018/06/29 14:51

    動かしてみてわかりました。
    テキストボックスに値が入らないということですね。
    次のようにしてみてください。
    afile = Inputbox("修正してください", "タイトル", txtvalue)
    メッセージとタイトルはお好みで修正してください。

    キャンセル

  • 2018/06/29 14:53

    度々申し訳ございません。
    ご教示頂いた内容でできました!上記については大変失礼しました。。
    重ねてとなり恐縮ですが、inputboxで入力した内容で行ごとに更新する場合、どのようなコードになりますか?
    この状態では、最後の入力で更新されますか?
    教えを乞うばかりで申し訳ないです。。

    キャンセル

  • 2018/06/29 14:59

    テキストファイルの更新処理は非常に面倒です。
    一番簡単なのは、別の作業用ファイルに吐き出していって、最後に元のファイルを削除、作業用のファイルをリネームでしょうか。
    まったく同じ文字数で書き換えるのであればファイルポインタを戻して上書きという手が使えますが、FileSystemObjectではファイルポインタの操作ができないようなので、最初の方法が無難です。

    キャンセル

  • 2018/06/29 15:10

    なるほど。ご教示頂いた代替案で作れるかやってみます。
    前段で教えて頂いたループ処理なのですが、テキストファイルの2行目から開始するという指定は可能でしょうか?

    キャンセル

  • 2018/06/29 15:15

    SkipLineというメソッドで飛ばせそうです。
    Set objFile = objFso.OpenTextFile("c:\test.txt")
    Call objFso.SkipLine
    マニュアルはここです。
    https://msdn.microsoft.com/ja-jp/library/cc428058.aspx
    FileSystemObjectが持つメソッドの一覧は以下にあります。
    https://msdn.microsoft.com/ja-jp/library/cc428078.aspx
    使えそうなのを調べつつお試しください。

    キャンセル

  • 2018/06/29 18:24

    いろいろとありがとうございます。
    ご教示頂いたSkipLineで1行目をスキップできました!
    お忙しいところご教示頂きまして感謝します。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Android:スライドアニメーションさせる方法。

    onfling()を使って右から左へのスライドアニメーションは成功したのですが左から右へのスワイプでも右から左へとアニメーションしてしまいます。 TransitionPendin

  • 解決済

    jQueryでコンテンツをスライド表示させたい!

    こんにちは。 用意させていただいた画像のように、ボタンをクリックで隠れてるコンテンツをスライドで表示させるようにしたいです。 (説明が下手なので、画像を作成してみました) 巷に

  • 解決済

    iosにてリソースとして組み込んだテキストファイルを読み込みたい

    iosにてリソースとして組み込んだテキストファイルを読み込むにはどうしたら良いでしょうか? Objective-Cのコードが知りたいです。よろしくお願いします。

  • 解決済

    ボタンに変数を使用した文字の表示について。

    閲覧ありがとうございます。 UIのボタンを配置したのはいいんですが、そのボタン自体に変数の値を含んだ文字を表示するにはどうすればいいでしょうか?

  • 解決済

    python2.7 テキストから重複する行を削除する

    Python2.7を利用しています。 ---------------------------- #憲法9条 #平和憲法 #辺野古 #普天間 #8221 #8221 #経済 #辺野古

  • 受付中

    Wordpress、single-***.phpの編集(Advanced Custom Fields...

    度々お世話になります。 PHP初心者です...。 Advanced Custom Fieldsを使用し、カスタム投稿を作成しています。 ラジオボタンの項目で、商品のバリエーシ

  • 受付中

    viでコピペ

    viではyyなどでコピーしてpでペーストできますが yyでコピーして別のファイルでpしてもペーストされませんよね これ、やり方わかるかたいますか?

  • 解決済

    MySQLのSELECT実行

    分からないこと MySQLでSELECT文を使ってテーブルの内容を表示し、確認したいのですが、データ量が大きいため、上にスクロールしても途中までしか表示されません。データすべてを

同じタグがついた質問を見る

  • VBScript

    221questions

    VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。