
ウェブサイトに表示されている表の中にドロップダウンリストがあり、それを含めてエクセルにコピペしたところ、それらコンテンツはテキストボックスのような形のままでエクセルのセルには認識されていません。
このドロップダウンリストの数値は、どうやったらエクセル内のセルに認識させることができますか?
このドロップダウンリストは、それぞれのセルの中身にかぶさるように(オブジェクトのように)表示されています。
コピペ元のウェブサイトはJava(?)を使っているようです。
私のエクセルは2010です。
週末の間に仕上げなければいけないレポートがあり、シロウトの頭で色々考えたり、試したりしましたが、さっぱり解決しません。
どうぞ、助けてください。
No.7ベストアンサー
- 回答日時:
#6です。
SELECTのリストを取得したいのだと思っておりましたが、SELECTで選択あるいはINPUTで入力した値を取得したいのでしょうか?
確かにINPUTに入力した文字でさえ、EXCELに貼り付ける事は出来ない様です。
一番簡単に実現する方法は、入力後のWebページをなんらかのpdf化アプリでpdfにして、Adobe Readerのファイル/その他の形式で保存/テキストで保存すると、選択/入力した値を含むテキストファイルが得られます。(Adobe Reader XIで試しています。pdf化の方は別環境の古いAcrobat6stdで試しておりますが、Google Chromeあたりなら標準でpdf出力機能を持っています。
mitarashi 様、
ご明察です。
SELECTで選択あるいはINPUTで入力した値を取得したかったのですが、説明がうまくなくてすみませんでした。
3日3晩ウロウロと迷い、悩み、あきらめそうになったのですが、ついにmitarashi様の上記の方法で試したら、、なんと!!!エクセルに実現することができました。
ほんとうに、ほんとうに、ありがとうございました。
費やした時間が無駄にならず、ものすごく嬉しいです。
No.8
- 回答日時:
#6です。
得意の悪のりで、VBAで取得するのはどうやるんだろうと、手持ちのコードをいじってみました。目的のWebページが公開できるものでは無いとの事ですので、こんな事も可能かもしれないという程度にとどまりますが、ご参考まで。実行例を画像で添付します。(SELECT:1 は、0から数えて二番目、すなわち「サンプル2」を選択している事を表します)'Microsoft Internet Control
'Microsoft HTML Object Library
'に参照設定
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Sub analyzeWebPage()
Dim ie As InternetExplorer
Dim doc As IHTMLDocument '-A
Dim chNode As IHTMLDOMNode
Set ie = getTopIeTab
If ie Is Nothing Then Exit Sub
Set doc = New HTMLDocument '-B
Set doc = ie.document
For Each chNode In doc.ChildNodes
scanNode chNode
Next chNode
Set doc = Nothing
End Sub
Sub scanNode(myNode As IHTMLDOMNode)
Dim myChildNode As IHTMLDOMNode
If myNode.nodeName = "INPUT" Then Debug.Print "INPUT:" & myNode.Value
If myNode.nodeName = "SELECT" Then Debug.Print "SELECT:"; myNode.selectedIndex
If myNode.nodeName = "OPTION" Then Debug.Print "OPTION:"; myNode.Value
If myNode.HasChildNodes Then
For Each myChildNode In myNode.ChildNodes
scanNode myChildNode
Next myChildNode
End If
End Sub
'IEの最前面Tabを取得
Function getTopIeTab(Optional matchWord As Variant) As InternetExplorer
Dim hWnd As Long
Dim ie As InternetExplorer
Dim targetIe As InternetExplorer
Const IEClassName As String = "IEFrame" 'IEのClass名
hWnd = FindWindow(IEClassName, vbNullString)
For Each ie In CreateObject("Shell.Application").Windows()
If hWnd = ie.hWnd Then
ie.StatusBar = True
ie.statustext = CStr(hWnd)
If ie.statustext = CStr(hWnd) Then
If IsMissing(matchWord) Then
Set getTopIeTab = ie
ie.statustext = ""
Exit Function
Else
If InStr(ie.LocationURL, matchWord) > 0 Then
Set getTopIeTab = ie
Exit Function
End If
End If
End If
End If
Next ie
Set getTopIeTab = Nothing
End Function

No.6
- 回答日時:
メモ帳で下記の様なサンプルページを作って、select.htmlとか命名して保存して、IEで開きます。
<html>
<head>
</head>
<body>
<select name="example">
<option value="サンプル1">サンプル1</option>
<option value="サンプル2">サンプル2</option>
<option value="サンプル3">サンプル3</option>
</select>
</body>
</html>
このページをコピーして、デフォルトまたは、HTML形式を指定して貼り付けると、コンボボックスの様なコントロールが貼り付けられ、テキスト形式を指定して貼り付けると、一つのセルにリストが貼り付けられました。
(画像参照)
一発でお望みの形で取得するのは標準機能では難しいと思います。上記両様で取得したデータを合成する必要があるでしょう。
貼り付けられたコントロールは、TypeNameを調べるとHTMLSelectというコントロールの様でした
(デザインモードにして、選択すると=EMBED("Forms.HTML:Select.1","")と表示されます)
下記の様なコードで、値(サンプル1;サンプル2;サンプル3というセミコロン区切りのリスト)に変換できるかも
(コードを記述したブックのSheet1を対象にしています。テストは不十分ですので、バックアップを取ったファイルでお試し下さい。)
Sub test()
Dim sh As Worksheet
Dim myOleObject As OLEObject
Set sh = ThisWorkbook.Sheets("Sheet1")
For Each myOleObject In sh.OLEObjects
If TypeName(myOleObject.Object) = "HTMLSelect" Then
myOleObject.TopLeftCell.Value = myOleObject.Object.Values 'Valuesという名前だが配列ではなくて文字列
myOleObject.Delete '値取得後コントロール削除
End If
Next myOleObject
End Sub
なお、As HTMLSelectで変数宣言してアクセスしようとすると、xl2010が一発で飛びました
Sub test0()
Dim sh As Worksheet
Dim myOleObject As OLEObject
Dim mySelect As HTMLSelect
Set sh = ThisWorkbook.Sheets("Sheet1")
Set mySelect = sh.OLEObjects(1).Object
Debug.Print mySelect.Values
End Sub

シロウトの私にもわかるように、大変丁寧にご説明くださって、どうもありがとうございます。
ソースのデータ元は、ある質問票の結果の表です。
アドバイスにしたがって、汗かきながらやってみました。
メモ帳などに添付すると、リストにサンプル例がある場合は、その例がすべて羅列されるのですが、サンプル例がなく独自に質問に答える場合は、実際には何らかの数値などが入力されていたのですが、添付後の結果は、空欄でした。
まだ、解決できませんが、少し意味がわかってきました。
もう少し、がんばって、試行錯誤してみます。
本当に、どうもありがとうございました!
No.5
- 回答日時:
> おっしゃるとおり、「画像」が見えてもそれはセルの上部にくっついているだけで、貼り付け先セルの中身はからっぽなのです。
画像を貼り付けたのでしたらそこに表示されている文字をセルに認識させることはできません。
どこのサイトのどの表をコピペしたのですか?
再び、回答してくださって本当にありがとうございます。
実は、ソースは顧客情報に関する内容が含まれ、サイトへのアクセス権が限定されているので、公開しにくいのです。せっかく有効なアドバイスをいただいたのに申し訳ありません。
No.4
- 回答日時:
> ウェブサイトに表示されている表の中にドロップダウンリストがあり、それを含めてエクセルにコピペしたところ、それらコンテンツはテキストボックスのような形のままでエクセルのセルには認識されていません。
> このドロップダウンリストの数値は、どうやったらエクセル内のセルに認識させることができますか?
> このドロップダウンリストは、それぞれのセルの中身にかぶさるように(オブジェクトのように)表示されています。
そのドロップダウンリストは、もしかしたら、リストの元の値ではなく、▼をクリックした結果表示されたリストの一覧ではないでしょうか?
その場合は、改めて、「データ」タブ→「データツール」-「データの入力規則」から設定する必要があるのでは?
ありがとうございます。おっしゃるとおり、リストの一覧でした。
ソースのデータ元は、ある質問票の結果の表です。
メモ帳などに添付すると、リストにサンプル例がある場合は、その例がすべて羅列されるのですが、サンプル例がなく独自に質問に答える場合は、実際には何らかの数値などが入力されていたのですが、添付後の結果は、空欄でした。
まだ、解決できませんが、少し意味がわかってきました。
どうもありがとうございました!
No.1
- 回答日時:
こんばんは!
おそらく一つのセル内に表示されているのではないでしょうか?
試しに、Wordかメモ帳に貼り付けてみてください。
そこで改行表示されていれば、表示されているものをもう一度Excelにコピー&ペーストすれば
各セルに分割されて表示されると思います。
他の原因ならごめんなさいね。m(_ _)m
tom04さん、早速の回答をどうもありがとうございました。 Wordに貼り付けてからエクセルにコピー&ペーストしてみたら、やはりエクセルのそれぞれのセル内の左上のボックス内にコンテンツが示され、本来のセルは空欄です。コンテンツをセルに取り込んで、計算などに使いたいのですが、できません。
メモ帳に貼り付けてみたら、ドロップダウンリストで選択されたものだけでなく、選択肢すべてが羅列されてしまいました。
成功できませんでしたが、すぐに回答して下さって、どうもありがとうございました。
束の間でしたが、希望が灯り、元気がでました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) 表計算ソフトcalcにおいて、1時間10分を1.1と表記する方法とそれらを集計する方法は? 4 2022/04/06 16:54
- Excel(エクセル) Excelの機能に関してです ドロップダウンリストをB3セルに設定します 元データはB3~B1000 2 2023/07/22 09:20
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルからビジオのリンク貼り付け 1 2023/03/30 17:51
- Excel(エクセル) 電卓は正しいのに エクセルで計算させると間違った答えです。なぜ? 7 2022/08/11 07:04
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日報のデータを月報にデータを...
-
エクセルのグラフでデータテー...
-
エクセル 文字の先頭4文字だ...
-
積上げ横棒グラフで値と比率を...
-
エクセルで3Dの円錐形を作成...
-
文字をアルファベット順に3つ...
-
エクセルマクロでセルの文字サ...
-
エクセルの神よ、ご回答を! エ...
-
エクセルのセル内でタブキーの...
-
差し込み印刷で文字化け!
-
文字を入力するだけで、強制終...
-
エクセルオンラインのみ勝手に...
-
エクセルの入力方法がわかりま...
-
VBA初心者です。電話番号の数字...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
複数の文字列のいずれかが含ま...
-
Excelで同じセルに箇条書きをし...
-
セルを結合したA4とA5の条件付...
-
Excelで2行単位のソートの出来...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで3Dの円錐形を作成...
-
エクセルのグラフでデータテー...
-
ウェブから貼ったドロップダウ...
-
差し込み印刷で文字化け!
-
エクセルオンラインのみ勝手に...
-
エクセルにて指定文字数以上の...
-
エクセル 文字の先頭4文字だ...
-
文字をアルファベット順に3つ...
-
エクセルのセルが突然選択でき...
-
エクセルの変換
-
日報のデータを月報にデータを...
-
エクセルVBA 長さ0の文字列をNu...
-
エクセルの神よ、ご回答を! エ...
-
エクセルで全波整流回路の波形
-
エクセル データ追加するもグ...
-
特殊記号を一括で消去または置...
-
エクセルマクロでセルの文字サ...
-
HTML形式の表を、Excel形式に...
-
【エクセル】原点を通るグラフ...
おすすめ情報