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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

16415閲覧

オブジェクトは、このプロパティまたはメソッドをサポートしていません。

esa_kyon

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/04/21 09:01

###前提・実現したいこと

理想は、excelで英単語を入力すると、自動的にweblioで検索し、おおよその意味をとってきて、隣のセルにその意味が入力されるようにしたい。

###発生している問題・エラーメッセージ

オブジェクトは、このプロパティまたはメソッドをサポートしていません。 MsgBox objIE.document.getElementsByClassName("summaryM descriptionWrp").innerText の部分が問題の場所だと思われます。

###該当のソースコード

Sub Macro1() n = Cells(Rows.Count, "A").End(xlUp).Row For i = 2 To n Range("A" & i).Select a = ActiveCell.Value Call weblio(a) Next i End Sub Sub weblio(keyWD) Set objIE = CreateObject("InternetExplorer.Application") strURL = "http://ejje.weblio.jp/" With objIE .Visible = True .Navigate2 strURL Do While .Busy = True DoEvents Loop Do While .document.ReadyState <> "complete" DoEvents Loop .document.getelementbyid("searchWord").Value = keyWD .document.forms(0).Submit MsgBox objIE.document.getElementsByClassName("summaryM descriptionWrp").innerText End With End Sub

###試したこと
MsgBox objIE.document.getElementsByClassName("summaryM descriptionWrp").innerText
の部分が問題の場所だと思われます。
一応、
MsgBox objIE.document.getElementbyid("summary").innerText
の時は、きちんと表示されましたが、表示される部分をもっと限定したいので、上のエラーを治したいです。

###補足情報(言語/FW/ツール等のバージョンなど)
VBAですが、javascriptとかとほぼ一緒だと思います。
頭の悪い方法を用いていると思うかもしれませんが、どなたかご教授お願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

与えられたクラス名で得られる要素の集合を返します。

document.getElementsByClassName - Web API インターフェイス | MDN

戻ってくるのはElementではありません。NodeListです。

NodeList.length

NodeList に含まれるノードの数
NodeList - Web API インターフェイス | MDN

NodeListのプロパティはlengthだけです。innerTextはありません。配列のように取り扱ってください。

投稿2017/04/21 09:56

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2017/04/21 11:25 編集

MDNは情報が古いのでお気をつけ下さい。 特に日本語版は情報が古い事が多く、英語版にスイッチすると最新の情報が得られる事もあります。 それでも、原文の仕様書をあたる方が確実ではありますが。 getElementsByClassName の返り値は HTMLCollection と記憶しています。 http://qiita.com/dskssk/items/cb6f89d0847484a3fd06 のコメント欄を参照。 なお、innerText は標準化されました。 https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute https://momdo.github.io/html/dom.html#the-innertext-idl-attribute textContentのような単純な連結ではなく、CSSを解釈するのが特徴ですが、アルゴリズムが複雑なので使いこなすのは苦労しそうです。 特別な理由がなければ使う必要がありませんが、textContent ではなく、innerText が必要な状況がいつか出てくるのかもしれません。
yambejp

2017/04/21 13:48

NodeListを返すのはquerySelectorAll()ですね
Lhankor_Mhy

2017/04/22 00:22

補足ありがとうございます。そうでしたね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問