• ベストアンサー

セル内の文字で、テクノラティのタグを作成したい

すみません、よろしくお願いします。 エクセルのセル内の文字から、 ブログに貼り付けるテクノラティのタグを作成したのですが、 関数などでできませんでしょうか。 2、3個でしたらタグクリエイターでできるのですが、 50個とか、100個一度にしたいのです。 よろしくお願いします。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

良い方法が見つからなかったので、Windows API関数とSendKeysを使いました。 Windows API関数は、Web検索で見つかったものを、そっくり使わせていただきました。 タグクリエイターのページが表示されている状態で、test1マクロを実行してください。 A列のデータを、タグ変換したテキストが、B列に書き込まれます。 Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Declare Function OpenIcon Lib "user32" (ByVal hWnd As Long) As Long Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long Sub IE_SetFront() Dim MyShell As Object, MyWindow As Object, objIE As Object Dim hWnd As Long Set MyShell = CreateObject("Shell.Application") For Each MyWindow In MyShell.Windows    If TypeName(MyWindow.document) = "HTMLDocument" Then      Set objIE = MyWindow: Exit For    End If Next If Not objIE Is Nothing Then    hWnd = objIE.hWnd    SetForegroundWindow hWnd    If IsIconic(hWnd) Then OpenIcon hWnd End If Set objIE = Nothing: Set MyShell = Nothing End Sub Sub test1()   Dim objIE As Object   Dim myTitle As String   Dim myTag As String   Dim htmTag As String   Dim i As Long   Dim j As Long   myTitle = "タグクリエイター"   For Each objIE In CreateObject("Shell.Application").Windows     If objIE.document.Title = myTitle Then       For i = 1 To 10         myTag = ThisWorkbook.Sheets("Sheet1").Cells(i, "A").Value         With objIE.document           .getElementsByTagName("textarea")("result").Value = ""           .getElementsByTagName("Input")("Query").Value = ""           .getElementsByTagName("Input")("Query").Value = myTag           .getElementsByTagName("Input")("Query").Select                      For j = 1 To 10             Call IE_SetFront             SendKeys "{F2}", True           Next j                      AppActivate Application.Caption           htmTag = .getElementsByTagName("textarea")("result").Value           ThisWorkbook.Sheets("Sheet1").Cells(i, "B").Value = htmTag         End With       Next i     End If     If objIE.document.Title = myTitle Then Exit For   Next objIE End Sub

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.6

>回答番号:No.5 この回答への補足 試しに、IE6(タグクリエイターを表示)とExcelのみ起動、他のプログラムは閉じて、マクロを実行してみてください。 あるいは、パソコンを再起動し、IE6(タグクリエイターを表示)とExcelのみ起動してマクロを実行してみてください。 # 既出のコードを全文、再掲載するのは資源の無駄遣いだと思います。 エラー内容を補足していただいたのは良かったです。 欲を言えば、コードのエラー行も明示していただくと、もっと良かったと思います。

ryujiok
質問者

お礼

xls88さんへ 今回は、長期間にわたりお付き合いいただき、 ありがとうございました。 私のミスもあり、いろいろご迷惑をおかけしてすみませんでした。 希望の動作のマクロを使うことができ、大変ありがたかったです。 ありがとうございました。

ryujiok
質問者

補足

xls88さん、こんにちは。 再起動後、ご指摘の方法(IE6(タグクリエイターを表示)とExcelのみ起動)で動作しました。 また、Range("A1:A10")のA10の数を増やすことで 大量の変換ができそうです。 ># 既出のコードを全文、再掲載するのは資源の無駄遣いだと思います。 はい、ただ、今回はエラーが出たので、実行した マクロの内容が間違っているのかと思い、書かせていただきました。 >欲を言えば、コードのエラー行も明示していただくと、もっと良かったと思います。 そうですね。エラーの行が表示されてました。 書き忘れでした。 長い間いろいろお世話になりました。 これで先に進めます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.5

>回答番号:No.4 この回答への補足 回答番号:No.3のコードをすべてコピペして、test1マクロのみ、回答番号:No.4のtest3マクロに差し替えてください。

ryujiok
質問者

補足

xls88さん、ありがとうございます。 Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Declare Function OpenIcon Lib "user32" (ByVal hWnd As Long) As Long Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long Sub IE_SetFront() Dim MyShell As Object, MyWindow As Object, objIE As Object Dim hWnd As Long Set MyShell = CreateObject("Shell.Application") For Each MyWindow In MyShell.Windows If TypeName(MyWindow.Document) = "HTMLDocument" Then Set objIE = MyWindow: Exit For End If Next If Not objIE Is Nothing Then hWnd = objIE.hWnd SetForegroundWindow hWnd If IsIconic(hWnd) Then OpenIcon hWnd End If Set objIE = Nothing: Set MyShell = Nothing End Sub Sub test3() Dim objSA As Object Dim rng As Range Dim myTime As Variant Dim myTitle As String Dim myTag As String Dim htmTag As String Dim i As Long Dim j As Long myTitle = "タグクリエイター" For Each objSA In CreateObject("Shell.Application").Windows If objSA.Document.Title = myTitle Then For Each rng In ActiveSheet.Range("A1:A10") myTag = rng.Value With objSA.Document .getElementsByTagName("textarea")("result").Value = "" .getElementsByTagName("Input")("Query").Value = "" .getElementsByTagName("Input")("Query").Value = myTag .getElementsByTagName("Input")("Query").Select For j = 1 To 100 Call IE_SetFront SendKeys "{F2}", True htmTag = .getElementsByTagName("textarea")("result").Value If htmTag <> "" Then Exit For Next j End With rng.Offset(0, 1).Value = htmTag Next rng End If If objSA.Document.Title = myTitle Then Exit For Next objSA End Sub を貼り付けました。 それで、 IE6で、タグクリエイターを表示、 A1にtest、A2~10にも適当な文字列をいれ、 B1にカーソルを置いた状態で、test3マクロを実行しました。 IE6のタグクリエイターのキーワード入力画面に「test」は 入りましたが、 実行エラー'-2147467259 (80004005)'; 'HWND'メソッドは失敗しました。'IWebBrowser2'オブジェクト のエラーが出ます。 うーん、なかなかうまくいきません。すみません。

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

放置スレのようですが、回答番号:No.3のtest1マクロをまとめ直してみました。 Sub test3()   Dim objSA As Object   Dim rng As Range   Dim myTime As Variant   Dim myTitle As String   Dim myTag As String   Dim htmTag As String   Dim i As Long   Dim j As Long   myTitle = "タグクリエイター"   For Each objSA In CreateObject("Shell.Application").Windows     If objSA.Document.Title = myTitle Then       For Each rng In ActiveSheet.Range("A1:A10")         myTag = rng.Value         With objSA.Document           .getElementsByTagName("textarea")("result").Value = ""           .getElementsByTagName("Input")("Query").Value = ""           .getElementsByTagName("Input")("Query").Value = myTag           .getElementsByTagName("Input")("Query").Select           For j = 1 To 100             Call IE_SetFront             SendKeys "{F2}", True             htmTag = .getElementsByTagName("textarea")("result").Value             If htmTag <> "" Then Exit For           Next j         End With         rng.Offset(0, 1).Value = htmTag       Next rng     End If     If objSA.Document.Title = myTitle Then Exit For   Next objSA End Sub

ryujiok
質問者

補足

xls88さん、こんにちは。 何回もありがとうございます。 正月は実家に帰ってて、ネットにつないでませんでした。m(__)m さっそくですが、サンプルのSubからEnd Subまでを、 マクロに登録して、 エクセルのA1にtestといれて、 IE6でタグクリエイターを表示させて、 マクロを実行しました。 すると、コンパイルエラー「SubまたはFunctionが定義されていません」のエラーが出て、先に進めませんでした。 なにか手順が間違っているのでしょうか。 (このマクロでどういう動作になるのか いまいちわかってなくて、すみません)

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

一部誤魔化しのサンプルマクロができました。 タグクリエイター http://syndication.jp/tools/trjtagmk/generater.html​ を開いてからマクロを実行してください。 Sub test1()   Dim objIE As Object   Dim mytime As Variant   Dim myTitle As String   Dim myTag As String   Dim htmTag As String   Dim i As Long   Dim ret      myTag = ActiveSheet.Range("A2").Value   myTitle = "タグクリエイター"   For Each objIE In CreateObject("Shell.Application").Windows     With objIE.Document       If .Title = myTitle Then         .getElementsByTagName("textarea")("result").Value = ""         .getElementsByTagName("Input")("Query").Value = ""                  .getElementsByTagName("Input")("Query").Value = myTag                  'どう書けばよいか分からないのでとりあえず誤魔化し         .getElementsByTagName("Input")("Query").Select         ret = Application.InputBox("IEをクリックしてF2キー押す")                  htmTag = .getElementsByTagName("textarea")("result").Value         ActiveSheet.Cells(2, "B").Value = htmTag         Exit For       End If     End With   Next objIE End Sub ゴルフ で %E3%82%B4%E3%83%AB%E3%83%95 と変換されたのですが、変換の法則を教えていただけないでしょうか。

ryujiok
質問者

補足

>と変換されたのですが、変換の法則を教えていただけないでしょうか。 セルに入力した文字を、UTF-8でURLエンコードしたいんです。 >%E3%82%B4%E3%83%AB%E3%83%95 は、これでOKだと思いますので、あとは、 エクセル内で処理できたらうれしいんですが。(^_^;)

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

セルデータをどのように加工すればよいのでしょうか? 過去ログですが、参考になるでしょうか? マクロでhtml出力? http://oshiete1.goo.ne.jp/qa4480277.html?ans_count_asc=20

ryujiok
質問者

補足

xls88さん、はじめまして。 ご回答ありがとうございます。 >マクロでhtml出力? タグクリエイター http://syndication.jp/tools/trjtagmk/generater.html で出力されるURLの形式が欲しいです。 具体的には、A1に「タグクリエイター」と入力したら、 B2に、「<a href="http://technorati.jp/tag/%E3%82%BF%E3%82%B0%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%82%BF%E3%83%BC" rel="tag">タグクリエイター</a>」と変換したいです。 これがA2~A100にも文字を入れたらB2~B100に 該当の文字に対するURLに変換しれくれる、という 動作を希望です。 なので、セルに直接「=~」で書き込めると 私のスキル的には一番ベストですが、それ以外の 実現方法でも(マクロなど)勉強して使えるように したいと思います。 すみません、何かいい案ありましたらよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • タグ検索とは

    ブログ初心者です。 タグ検索という言葉を良く聞きますが、その名のとおり、ブログのタグを検索するということですよね? なぜ、テクノラティのように「ブログ検索」と「タグ検索」が別々に存在するのでしょうか? ブログに書かれているキーワード=タグに書かれていること、ではないのでしょうか? よろしくお願いします。

  • あなたのブログのお値段は?をしたいけど、テクノラティにブログが登録できないのですが何故でしょうか?

    あなたのブログのお値段は?というソフトがあるので 登録して自分のブログに貼ったのですが、0円なので どうしてかなと調べてみると、テクノラティという サイトにブログが登録されていないと金額が表示されないみたいなんです。 私はFC2の無料ブログでブログを作成しているのですが テクノラティにログインして「あなたのブログ」というメニューからブログの登録をしようとしても 「認証非対応」というエラーがでて登録できないのです。 どうしたらよいでしょうか?

  • エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したい

    エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したいが、どのような関数を使えばよいのでしょうか?

  • 数式の入っているセルに文字入力

    エクセル2003を使っています。 数式(関数)の入っているセルに文字入力はできないでしょうか。 エクセルでカレンダーを作っているのですが、 ボックスカレンダーで関数で年月を入力したら 日にちが入るように関数を入れています。 1月のカレンダーで1と日付が入ったセルに 元旦と文字を入力したいのですが できるのでしょうか? できるとしたら どうしたらいいのでしょうか?

  • Excel セル内の文字だけを取り出すには

    Excelの1つのセルに 01234 ABCDEFG のように、「数字5つ(固定)+半角スペース+(任意の数の)文字」 が入力されています。数値は必ず5桁と決まっていますが、 文字列の数はさまざまです。 関数で文字の部分だけ、別のセルに取り出したいのですが、 どの関数を使うとできますか?教えて下さい。 よろしくお願いします。

  • CSVのセルの中にHTMLタグを入れるとセルが壊れます

    CSVファイルをMicrosoft Excelで作成したのですが、 セルの中にHTMLタグ(主にTABLEタグ)を手打ちで入力しました。 その後、保存したファイルを開くと、HTMLのタグが認識されてしまい、勝手にテーブルタグによるセルが作られてしまいました。 しかも、カンマの区切りが入っているにもかかわらず、カンマは全く認識されません。 タグ部分の中にも改行やカンマは入れておりません。 テキストファイルで見たところ、元のファイルの状態から変わっていません。 タグをただのテキストとして認識させるにはどうしたらよいのでしょうか? ちなみに環境はWindows2000、Excelも2000です。 よろしくお願いします!

  • エクセルでのセル内の文字位置について

    いつもお世話になっております。 エクセル2007を使用しています。 関数による数式の算出結果が文字列の場合、セル内で左寄せ表示になってしまいます。右寄せにする方法はあるのでしょうか? 具体的には エクセルにより表を作成して、0表示をさせたくないのでオプションによりゼロ値は非表示にしています。ただ、0%の箇所は表示させたいので、IF関数を使って、 IF(○○=0,"0%",・・・)ってやって0%は表示させたのですが、セル内で左寄せになってしまいます。 こんな場合はどうするのがBESTでしょうか? どなたかよろしくお願いいたします。

  • セルに入りきらない文字

    エクセルで表を作成しました セルの中の文字が多くて、印刷してみたら入りきらない場合があったのですが、 プレビューではきちんとセルの中に入っているのです。 プレビューと実際の印刷は違うものなのでしょうか?

  • URLの特定の文字をセルに抜き出す

    芸能人のBLOGをExcelでまとめているのですが 以下のURLの【xanadu11】部分のみ、特定セルに抽出したいのですが どのような関数?を利用すれば良いのでしょうか? <例> A2セル内に【http://ameblo.jp/xanadu11/】 B2セル内に【xanadu11】 A3セル内に【http://ameblo.jp/yamada-yu/】 B3セル内に【yamada-yu】 抽出したい文字列の前は固定ですが、 抽出したい部分の文字数は決まっておりません。 宜しくお願いいたします。

  • Excelのセル内の文字の角度に関して

    はじめまして。tyometyokiです。 Excelで資料を作成しているのですが、解決することが出来ません。 力を貸して下さい。 まず実現したい事は、セル内に文字を入力し、罫線で囲み、字に角度をつけたい。理由として、入力文字が長い為、セルを横長ではなく縦長にして表示をさせたいと思っているからです。 操作としては、『セルの書式設定』を開き「配置」のタグを選択方向にて角度を選択で文字全体の角度は変更できましたが、ここからが問題でなんと罫線も一緒にななっめってしまいます。表がとてもおかしなことになってしまいます。 ■環境  OS:Win XP pro  Excelのverは、2003 どうか皆様助けてくださいませ。

専門家に質問してみよう