人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Webのフォームに自動入力するツールを探しています。

具体的には商品ごとのコードをシステムに登録する必要があり、
商品区分+登録日+シリアル+棚番号で構成されるものを
フォームのテキストボックスに入力する必要があります。

例としては、k20070101001-A1といった形式となり、
kが商品区分、A1が棚番号となります。
シリアルは商品の登録ごとに1つずつ増やしていきます。

こういった内容を、
1.Webのフォームに自動入力
2.ペーストとの要領で簡単に入力
のいずれかが出来るツールはないでしょうか?

最低限、日付+シリアルの自動入力が出来ればいいと考えています。
商品区分・棚区分はずっと一定のものを入力していきますので、どこかに設定画面のようなものがあって変えることが出来ればベターです。

●質問者: benjamintokyo
●カテゴリ:コンピュータ インターネット
✍キーワード:A1 Web コード システム シリアル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hamster009
●27ポイント

javascriptのプログラミングになると思います。http://end

◎質問者からの返答

私が作っているシステムではなく、既存のシステムですのでjavascriptでの解決は難しいです。


2 ● ardarim
●27ポイント

かんたんなHTMLの知識が必要になりますが、URLにフォームデータを追加することでかんたんに事前入力ができます。URLの後に、"?input1=AAA&input2=BBB"のような感じの文字列をつけると、フォームのinput1という入力欄にAAA、input2という入力欄にBBBのような感じで入力された状態でページが表示されます。


たとえばはてなのログインページ(https://www.hatena.ne.jp/login)で自動的にユーザー名を入れるには、ブラウザで

https://www.hatena.ne.jp/login?key=hatena@example.com

というURLを開きます。

keyというのはユーザー名の入力欄の名前です。(HTMLソースを表示して、inputタグを検索して調べます)


ただしログイン管理されているようなWebシステムですとURLの直接入力ができないと思うのでこの方法は使えない可能性があります。



またExcelVBAの知識がおありでしたら、ExcelからIEを開いて、Excelシートの内容からフォームに自動入力と言うようなことがExcelマクロ(VBA)でできます。(そんなに複雑で難しいプログラムにはなりません)

Excelシートをベースに管理できますし、いろいろカスタマイズも効くので便利です。


そういう前提でよければサンプルマクロを回答してもかまいませんが、技術的な話を期待されているかどうか分かりませんので今回の回答では書きません。

◎質問者からの返答

既存のシステム(具体的にはamazon.co.jpです)への適用なので、ご提示の方法では解決できないかと思います。

Excelから呼び出すという方法もおもしろいのですが、スピードを要求されるため実際には難しいかと思います。


3 ● ardarim
●26ポイント

Excelから呼び出してもそれほど遅くはないです。


試しに作ってみたので参考にどうぞ。

他にいい回答がなければ試してみるのも良いでしょう。


適当な新規ブックに[ツール]-[マクロ]-[Visual Basic Editor]でエディタを開き、ThisWorkBookに以下のプログラムをコピペしてください。

Option Explicit
Option Base 0

Dim objIE As Object

Sub CheckAmazon()

 Dim i As Long
 Dim r As Long
 Dim elements As Object
 
 Set objIE = CreateObject("InternetExplorer.application")

 objIE.Visible = True
 IE_navigate "http://www.amazon.co.jp"

 If MsgBox("サインインを行ってください。準備ができたらOKを押してください。キャンセルで終了します。", vbOKCancel) = vbCancel Then
 objIE.Quit
 Exit Sub
 End If

 IE_navigate "http://www.amazon.co.jp"
 
 r = 1
 Do While Worksheets(1).Cells(r, 1).Value <> ""
 
 Set elements = objIE.document.getElementsByName("field-keywords")
 If elements Is Nothing Then
 Exit Sub
 End If
 elements.Item(0).Value = Worksheets(1).Cells(r, 1).Value
 
 elements.Item(0).form.submit
 Call WaitForReady
 
 If InStr(1, objIE.document.getElementsByTagName("HTML").Item(0).outerhtml, "完全に一致する結果がありませんでした") > 0 Then
 Worksheets(1).Cells(r, 2).Value = "一致する商品なし"
 Else
 Set elements = objIE.document.getElementsByTagName("SPAN")
 If Not elements Is Nothing Then
 For i = 0 To elements.Length - 1
 If elements.Item(i).className = "srTitle" Then
 Worksheets(1).Cells(r, 2).Value = elements.Item(i).FirstChild.nodeValue
 Exit For
 End If
 Next i
 End If
 End If
 
 r = r + 1
 Loop
 
 MsgBox "完了しました"

 Set objIE = Nothing
 
End Sub

Sub IE_navigate(url As String)

 objIE.navigate url
 WaitForSeconds 1

 Call WaitForReady

End Sub

Function WaitForReady()

 Do While objIE.busy
 DoEvents
 Loop
 
 Do While objIE.document.ReadyState <> "complete"
 DoEvents
 Loop

End Function

Sub WaitForSeconds(ByVal seconds As Double)

 Dim t As Double
 
 seconds = seconds / 24 / 60 / 60
 t = Now()
 Do While (Now() - t) < seconds
 DoEvents
 Loop

End Sub

マクロ(CheckAmazon)を実行するとIEが起動しamazonのトップが表示されます。サインインを行って、Excel側でOKを押すと、Sheet1の列Aに書かれた複数のキーワードで次々と検索を行い、最初に見つかったアイテムを列Bに書くサンプルです。


検索フォームを使ったサンプルですが、他のフォームでも応用が可能です。

◎質問者からの返答

スピードが要求されるという意味が上手く伝わらなかったようで大変失礼しました。

実際の作業では、アイテムの状態などを手作業で登録し、それぞれに商品IDを登録するような作業を行います。同一の条件を繰り返すようなものではないので、PCの処理にかかる時間を要求しているのではなく、人間がいかに時間を変えずに作業できるか、作業の簡便さを求めています。

ただ、フォーム上に定型の内容入力することを簡単にして欲しいだけなのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ