HTA上データをExcelへ転記する方法

このQ&Aのポイント
  • HTAでレコードを条件検索するプログラムを作成していますが、検索結果の転記方法がわかりません。
  • HTA上に表示されるレコードの中から特定のフィールドをチェックボックスで選択し、選択されたデータをExcelに転記したいです。
  • HTAのオブジェクトを取得して自分自身を操作しようと試みましたが、思うような結果が得られません。どのようにすればデータをExcelに転記できるでしょうか?
回答を見る
  • ベストアンサー

HTA上データをExcelへ転記するには?

HTAでレコードを条件検索するプログラムを作っています。条件によるレコード検索までは出来ているのですが、その結果の転記が出来ないでおります。 検索を実行すると指定した条件でDBの情報を取得し表示させます。 表示する際にHTA上にレコードの横へチェックボックスが作成されます。 HTA上に表示されるレコードですが、レコードの状態を確認するため必要最低限のものしか表示しないようにしています。 (ウィンドウサイズを出来るだけ小さく作りたかったため) select * from sheet1 where 陳列コード = 'B01'で検索を行いobjRS(1)、objRS(2)、objRS(3)、objRS(6)、objRS(7)というように全てのフィールドは表示させていません。 HTA上に表示をしExcelへ転記する必要があるものだけを確認したらチェックボックスにチェックをいれます。 転記を押したらHTA上に表示されている「商品C (objRS(2))」と「陳列C (objRS(3))」のフィールドをを元に再度SQLを発行させExcelに転記するというやり方です。 例:select * from sheet1 where 商品コード = 'A0001' and 陳列コード 'B1'のようにです。 要は、チェックボックスにチェックがついたものだけをSQLを発行しエクセルへ転記を行いたいのですがどのようにしたらいいのか・・・ ひょっとしたらHTAのオブジェクトを取得してHTA自分自身を操作??なんておもってやってみたのですが何故かHTAのプログラムだけ結果が返りません。 それかこの考え自体が間違いでしょうか?どなたかヒントで構いませんので力になっていただけないでしょうか? http://www.google.com/notebook/public/06577523275749879902/BDRomDAoQ8pekyuwj?hl=ja (似たような質問を昼間書いたのですが自分自身分かりづらかったので再投稿しました 削除が可能になりましたら古いのは消しますのでご了承ください)

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

HTAからExcelを操作すべきと思います。 以下、VBScriptと仮定した場合 Dim APL Dim WKB Dim WKS Set APL = CreateObject("Excel.Application") 'Excel起動 Set WKB = APL.Workbooks.Add '新ブックを作る Set WKS = WKB.WorkSheets(1) '先頭のシート 後は以下のようにセルに仕込む。 WKS.Cells(行, 列).Value = objRS(x) '行、列は1~ データを貼り付けたら可視にする APL.Visible = True このExcelシートをどうするかは見ている人の勝手なので、シートを 可視にしたら、処理は終了する。APL以下のオブジェクトはケアする 必要はない。

関連するQ&A

  • ACCESS2000 VBA フォームのコントロールに値を転記

    <やりたいこと> 保存されているレコードのフィールド値を修正するために、修正用非連結フォームを開くとき、当該レコードの値を転記したい。 <できないこと> コンボボックスに値が転記できない。 (テキストボックスには値が転記できる。) Private Sub Form_Load() Dim Sql As String Sql = "SELECT* FROM T_履歴 WHERE NO.=" & Key & ";"  'KeyはPublic変数、別のフォームモジュール内で値が格納されている。  'Keyによって、レコードはひとつに絞られている。 Dim DB As ADODB.Connection Set DB = CurrentProject.Connection Dim RS As New ADODB.Recordset RS.Open Sql, DB, adOpenForwardOnly, adLockOptimistic, adCmdText Me!氏名combo = RS!氏名 ↑この式で思うような結果が得られない。  .Text .Value のプロパティを付加しても結果は同じ。  ACCESS97ではこのように コンボボックス名="値" で、  値が代入され、コンボのソースの中からその値が選ばれた状態になったのに…。  

  • エクセル マクロ フォームに転記したい

    (1)エクセルSheet1にボタンをクリックするとフォームを出てくる。(2)そのフォームは、転記する専用のフォーム。(3)転記フォームの中にボタンを作り、新しいフォームが出てくる。(4)コンボボックスに表示した文字を転記フォームのテキストボックスに転記したい。 この様なことは出来ますか? マクロの記述を教えてください。

  • エクセルVBAでmdb上のデータを抽出後表示したい

    エクセルVBAについての質問です。 現在、excelにのみ慣れ、accessはほとんど使ったことがないユーザーのための プログラムを作成しています。 行き詰っている箇所はエクセルVBAにてアクセスDBのあるクエリをさらに条件指定し 抽出されたデータをエクセルのフォームへ表示しようという部分です。 「あるテキストボックスへ入力した文字列を元に、検索した結果をリストボックスへ表示」 方々検索してみたのですが、条件指定の仕方が悪いようだ。。というところから先に 進めません。 我流で組み上げているので、上級者の方には各所ご指摘頂きそうですが、ひとまず以下に コードを記載します。 Set cnnH = New ADODB.Connection cnnH.Open cnsADO_CONNECT1 & dbPath & dbName & ";" SrcP1 = "*" & StrConv({検索指定文字1}.Value, vbUpperCase + vbNarrow) & "*" SrcP2 = "*" & StrConv({検索指定文字2}.Value, vbUpperCase + vbNarrow) & "*" 'レコードセットを開く。"仕様書"というテーブルを参照のため開きます。 Set rstA = New ADODB.Recordset Sql_kikaku = "SELECT * FROM 仕様書 WHERE 社内CD " like '" & SrcP1 & "'"                            ------↑ここがうまく動作しません↑------- rstA.Open Sql_kikaku, cnnH, adOpenForwardOnly, adLockReadOnly If rstA.EOF And rstA.BOF Then MsgBox "該当品が見当たりません" '←ここを通過するので抽出データがひとつもないようです Exit Sub End If Do Until rstA.EOF {表示したいリストボックス}.AddItem rstA![品名] rstA.MoveNext Loop 尚where文を削除すると、当然でしょうが全レコードが表示されます また、検索文字は二つAND指定しようと思っていますが、とりあえず 一つ目が解決してからにしようと思っています。 問い方がわかりにくいかもしれませんが、どなたかご教授下さい。。

  • ACCESS VBA テーブルデータにYES/NO

    ACCESSの表形式のフォームにYES/NOフィールドを足して 一覧フォームで任意のチェックボックスを選択して 選択されたデータのみを表示するようにしたいです。 しかしチェックボックスはレコードひとつひとつについてるのですが 認識されるチェックボックスは一番上のレコードのチェックボックスのみです。どうすればレコード別に判定できるのがわからないので 詳しい方ご教授お願いします。自分が書いたのは下記コードです。 Dim chkBln As Boolean chkBln = False If チェック50 = True Then chkBln = True MsgBox chkBln End If '検索結果の表示 DoCmd.OpenForm ("データ修正画面") '自身のレコードソースに設定 Forms("データ修正画面").RecordSource = "Select * From T_障害票マスタ WHERE チェック = " & chkBln & ""

  • phpMysqlの画面操作で抽出データを一度に削い

    さくらサーバのMysql、phpMysqlを利用しています SQL文を勉強してSQL文で書けばいいのでしょうが phpMysqlのマンマシンインターフェースが便利なのでいつもそれを 利用しています 今回、あるテーブルからある条件に合致するレコード約2000件を 一度に削除しようとしています phpMysqlの検索タブを利用してある条件を指定して、条件に合致する レコードは2000件表示されてきます その抽出された2000件のレコードを削除したいのですが・・・ phpMysqlでは抽出レコードの表示について、初期値では1画面、 30件毎に表示されるようになっています その画面毎に一番下にメニューがあり各レコードごとにチェックボックス があり、レコード毎にチェックして、チェックがついたレコードを削除 できるようになっていますが 1レコードずつ全部をしていくのは大変のため、画面下にすべてのレコード にチェックをつけるメニューがあります 初期値の1画面30件の表示では、70回弱の操作が必要となるため大変です このため、1画面2000レコード表示に指定すると、表示はしてくるのですが 30表示の場合に一番下に出ていた、「すべてチェックする」表示が出て きません Sql文でなく、マンマシンインターフェースで簡単に抽出してきた2000件の レコードを削除する方法はないでしょうか あれば教えていただきたいのですが・・

  • 一つのテキストフィールドで抽出データを変えたい

    いつもお世話になっております。 早速ですが、一つのテキストフィールドで2種類の抽出条件を検索したいのです。 sql="select * from A where (code>='" & str &"' or name>='" & str &"')" のようにSQLへ問い合わせしております。 ユーザーが検索するときにcodeで検索かけるかmameで検索かけるか分からないので、どちらが入力されても検索できるようにしたいのです。 ちょっと変わったことをしていまして、codeが「0123」以上のものまたはnameが「あああ」以上のものを検索したいです。 sql="select * from A where (code='" & str &"' or name='" & str &"')" のように一意のものを検索することは出来ております。 また、それぞれ sql="select * from A where (code>='" & str &"')" sql="select * from A where (name>='" & str &"')" ではどちらも検索出来ております。 これを上記のようにORでくっつけるとnameのほうだけ検索可になりました。 設定方法が間違えていますでしょうか? わかる方がいましたら、ご協力お願いします。

  • phpMyadminの画面操作でデータを一度に消去

    さくらサーバのMysql、phpMyadminを利用しています SQL文を勉強してSQL文で書けばいいのでしょうが phpMyadminlのマンマシンインターフェースが便利なのでいつもそれを 利用しています 今回、あるテーブルからある条件に合致するレコード約2000件を 一度に削除しようとしています phpMyadminの検索タブを利用してある条件を指定して、条件に合致する レコードは2000件表示されてきます その抽出された2000件のレコードを一挙に削除したいのですが・・・ phpMyadminでは抽出レコードの表示について、初期値では1画面、 30件毎に表示されるようになっています その画面毎に一番下にメニューがあり各レコードごとにチェックボックス があり、レコード毎にチェックして、チェックがついたレコードを削除 できるようになっていますが 1レコードずつ全部をしていくのは大変のため、画面下にある「すべてのレコード にチェック」をつけるメニューがあります 2000件のテータ消去をするためには 初期値の1画面30件の表示では、70回弱の操作が必要となるため大変です このため、1画面2000レコード表示に指定すると、表示はしてくるのですが 30表示の場合に一番下に出ていた、「すべてチェックする」表示が出て きません Sql文でなく、マンマシンインターフェースで簡単に抽出してきた2000件の レコードを削除する方法はないでしょうか あれば教えていただきたいのですが・・

    • ベストアンサー
    • MySQL
  • (エクセル)複数の検索ワードから検索し転記する。

    (エクセル) 複数の条件にあうレコードを検索し転記する方法を教えてください。 会社で加工履歴を入力し、それを加工のデーターベース及び、単価表としても使用しようと考えています。 以前は、部品コードを入力すると、VLOOKUPで別シートにある一覧から部品コードを検索し、その型式・部品名・金額・処理を出せるようにしていたのですが、同じ部品コードで違う処理加工をするケースが存在し、VLOOKUPでは先頭の1つのみしか結果が出せない為、手入力で行っていたのですが、手入力の際、そこのセルの数式が飛んでしまい、使いやすいのか使いにくいのかわからない状態でした。 そこで、部品コードと行った処理(合計4セル)から一致するものを検索し、言い換えれば、写真下段の加工フォームの様に、C4・C5・D5・E5の4種から一致するレコードを検索し、写真上段の一覧からその結果をC7・E7・C8に挿入すればいいのかと思い、色々とマクロを組んでみましたが、一向に作動しません。 このようなケースの場合、どういったマクロを組めばいいのでしょうか? どなたか、御教授願います。

  • Excel 条件一致の別シートの行にデータを転記

    Excel初心者です。教えてください。 アンケートの集計をしているのですが、 単票形式の入力用シートに入っているデータを、隣のシートに転記していきたいと思っています。 入力シートには会社名と担当者、多数の設問があり、その回答は全てチェックボックス形式です。(非表示のセルにチェックボックスのチェック有り無しをリンクさせています) 隣のシートには既に会社名などの一覧があり、そこの社名が一致する行にそのチェックの有り無しの値を転記用ボタンで転記したいと思っています。 ●入力シート A株式会社 担当:佐藤 設問1・・・ チェックあり 設問2・・・ チェックなし 設問3・・・ チェックあり ・ ・ ・ ●転記先シート 社名 設問1 設問2 設問3 A株式会社 TRUE FALSE TRUE B株式会社 C株式会社 マクロでどのようにしたらよいでしょうか。 すみませんが教えてください<(_ _)> よろしくお願いいたします。

  • マクロで5個のBOOKのデータをBOOK1に転記

    エクセルマクロで対話型でBOOK2~6の5個のデータを BOOK1のシート1に順番で転記したいです。 BOOK2~BOOK6は作業者にファイルを選択させたいです。 BOOK2~BOOK6は作業の都度行数がBOOKごとに変わります。 (500~5,000行でばらつきます) 流れとしては、 1.BOOK1を開いてマクロを軌道 2.エクセルのファイルを開くウィンドーが出る 3.ファイルを選択させる(例:マイネットワーク内のBOOK2を選択) 4.ウィンドーの開くをクリックする 5.転記1回目   指定したファイルが開いてデータが   BOOK1のシート1に転記される   この1回目は1行目からデータがある最終行まで。   その後BOOK2は閉じられる 6.メッセージボックスで「転記完了」と表示 7.メッセージボックスの「OK」をクリックすると   エクセルのファイルを開くウィンドーが出る 8.ファイルを選択させる(例:マイネットワーク内のBOOK3を選択) 9.ウィンドーの開くをクリックする 10.転記2回目   指定したファイルが開いてデータの中の2行目~最終行までを   BOOK1のシート1の最終行の次の行から転記を行う。   (NO.5のBOOK2が1,000行の場合1,001行目から    BOOK3のデータ2行目以降が転記される)   その後BOOK3は閉じられる 11.この作業を計5回行う   (転記3~5回目も転記するデータは2行目~最終行) 13.メッセージボックスで「5個のBOOKの転記が終了」と表示 14.メッセージボックスの「OK」をクリックすると   Call 編集   でSub 編集 というプロシージャーが起動する Sub 編集は出来上がってます。 (BOOK1のシート1を編集します。) NO.1~NO.14のマクロ記述を教えてください。 自分で作成した記述では全然駄目でした。 よろしくお願いします。

専門家に質問してみよう