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

業務でサイボウズを使いはじめました。

エクセルのb2に入力されている内容を
マクロボタンを押すことで
サイボウズの掲示板へ入力したいのですが、
そのようなことは可能でしょうか?
バーションはCybozu? Garoon? Version 3.0.3となります。

どうぞよろしくお願いいたします。

●質問者: ohtsu6
●カテゴリ:コンピュータ インターネット
✍キーワード:cybozu エクセル サイボウズ ボタン マクロ
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● mdfmk
●100ポイント

http://products.cybozu.co.jp/garoon/solution/api/application/index.html


APIが公開されておりSOAPで他のソフトウェアと連携できるようです。

Excel+VBAでこのAPIと通信するようなプログラムを組めばできると思います。



でも、純粋にコピペじゃだめなんですか?

◎質問者からの返答

>mdfmkさま

ありがとうございます。

サーバーの設定は変更できないので、

Excel+VBAだけではできないでしょうか?

下記の感じでいけそうな気もしますが・・・

http://questionbox.jp.msn.com/qa5295230.html

よろしくお願いいたします。


2 ● yoda
●0ポイント

http://ys2001hp.web.fc2.com/page2sa.html

このページが分かりやすいと思います。


3 ● きゃづみぃ
●100ポイント

Dim objIE As Object '変数を定義します。

Dim objINPUT As Object 'Inputタグ格納用

'IEの起動

Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。

objIE.Visible = True '可視、Trueで見えるようにします。 見ない場合は False

'処理したいページを表示します。

objIE.Navigate "http://アドレスを記述します。"

'ページの表示完了を待ちます。

While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。

DoEvents '重いので嫌いな人居るけど。

Wend

objIE.document.getElementsByName("email")(0).Value = "test"

objIE.document.getElementsByName("passwd")(0).Value = "test"




こんな感じで セットできるかな?

難しければ、SendKeysを使えばいいでしょう。

http://www.officetanaka.net/excel/vba/statement/SendKeys.htm

◎質問者からの返答

takntさま

どうもありがとうございます。

もし可能でしたら、

エクセルのB2の件も含めて説明をお願いいたします。


4 ● Mook
●1500ポイント ベストアンサー

API でやる方がスマートだと思いますが、とりあえず IE の実装例です。


発言したい掲示板の書き込み画面を一度手動で表示し、その時のURLを★の次行に

書いて実行してください。


Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'// ★掲示を書き込む URL
Const boardWriteURL = "http://192.168.1.1/cgi-bin/cbgrn/grn.exe/bulletin/send?cid=4"
Const WAIT_TIME_OUT = 15

Sub SendBoardMessage()
 Dim objIE
 Set objIE = CreateObject("InternetExplorer.Application")

 objIE.Navigate boardWriteURL
 objIE.Visible = True

 If WaitReadyState(objIE, "掲示を書き込む") = False Then
 MsgBox "掲示板が表示できません"
 objIE.Quit
 Exit Sub
 End If

'//☆1 タイトルを入れる
 objIE.document.getElementsByName("title")(0).Value = Range("B1").Value
 MsgBox "タイトルを書きました。"
 Sleep 300
'//☆2 内容を入れる
 objIE.document.getElementsByName("data")(0).Value = Range("B2").Value
 MsgBox "本文を書きました。"
 Sleep 300
'//☆3 「掲示する」をクリック
'// objIE.document.getElementsByName("send")(0).Click
'// ボタンの名前で検索
 Dim objs, o
 Set objs = objIE.document.getElementsByTagName("input")
 For Each o In objs
 If o.Value = "書き込む" Then
 o.Click
 MsgBox "保存しました。"
 Exit Sub
 End If
 Next
 MsgBox "保存ボタンが見つかりませんでした。"
End Sub


Function WaitReadyState(objIE, keyWord) As Boolean
 Dim startTime
 startTime = Now
 Do While True
 If objIE.Busy = False And objIE.readyState = 4 Then
 If InStr(objIE.document.Body.innerText, keyWord) > 0 Then
 WaitReadyState = True
 Exit Function
 End If
 End If
 If DateDiff("s", startTime, Now) > WAIT_TIME_OUT Then
 WaitReadyState = False
 Exit Function
 End If
 DoEvents
 Sleep 50
 Loop
End Function

参考

http://www.ken3.org/cgi-bin/group/vba_ie.asp

◎質問者からの返答

MOOKさま

どうもありがとうございます。

はじめに参考のサイトをみてやってみたのですが

実力不足でできませんでした・・・

上記をエクセルにコピーしてみたのですが、

開くことはできても、

テキストエリアへの入力、

書き込むボタンを押す動作ができませんでした。


ご参考までに関連しそうな箇所の

ソースをアップさせていただきます。

フォロー

<iframe src="/cgi-bin/cbgrn/grn.cgi/grn/space?" class="re_editor" name="data_ed" id="data_ed_id" frameborder="0"style="display: none; border: 1px #cccccc inset; width: 584; height: 110.4;"> </iframe>




添付ファイルを追加する


5 ● you1031931
●0ポイント

コピペが出来なかったら

できないんじゃないかな

他の人は何かややこしいですけど出来るっぽいことを書いてますね

複雑で難しい気もしますけど頑張るしかないですね


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



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