- ベストアンサー
セルの自動コピーはできますか?
ブラウザのSleipnirには、クリップボードにアドレスがコピーされたときに、そのページを開くというオプションがあります。 その機能を使い、予めエクセルに入れておいたHPをスライドショーのように表示させたいと思っています。 そこで、A1・B1・C1…のように、セルを30秒毎に自動でコピーするような機能をエクセルで作ることは可能でしょうか。 あるいは、ほかの機能を用いて行うことはできないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クリップボードの監視機能だと、どんどん新しいタブが開いてしまうので、 Sleipnir API を使った方がいいかもね。(設定で何とかなる?) Excel VBA + Sleipnir 2.8.5 だとこんな感じかと。 なお、ソース中 http で始まるアドレスの部分がバケる都合、 変な書き方をしてる部分があります。 ' // 標準モジュール Private Declare Sub Sleep Lib "kernel32.dll" ( _ ByVal dwMilliseconds As Long) Private Declare Function timeGetTime Lib "winmm.dll" () As Long Sub sample() ' 読み込みインターバル 30秒 Const LOAD_INTERVAL As Long = 30 ' セル以外が選択されている場合は終了 If Not TypeOf Selection Is Range Then Exit Sub On Error GoTo Err_ Dim pnir As Object Dim url As String Dim wndID As Long Dim r As Range Dim t As Long Set pnir = CreateObject("Sleipnir.API") For Each r In Selection.Cells url = r.Text If LCase$(url) Like "ht" & "tp://*" Then If pnir.GetIndex(wndID) < 0 Then wndID = pnir.NewWindow(url, True) Else pnir.ActiveIndex = pnir.GetIndex(wndID) pnir.Navigate wndID, url End If t = timeGetTime() + LOAD_INTERVAL * 1000 While t > timeGetTime() DoEvents Call Sleep(100&) Wend End If Next Bye_: Set pnir = Nothing Exit Sub Err_: MsgBox Err.Description, vbCritical Resume Bye_ End Sub
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
Sleipnir API リファレンス: --- Sleipnir インストールフォルダ\documment\Sleipnir-API.txt によれば、 スクリプトを使用するには「Sleipnir オプション|スクリプトによる クライアントの操作を許可する」のチェックを有効にしてください。 このオプションはデフォルトでは無効になっています。 ・・・とあります。この Sleipnir の設定後、URL が記入されたセルを いくつか選択し、マクロを試してみてください。 なお、回答者としては環境を提示していただいた方が助かります。 --- OS, IE, Excel, Sleipnir等
お礼
てっきり、OSかExcelの問題だと思い四苦八苦していました。 お恥ずかしい… マクロは思ったとおりの動作をしていて感激です。ありがとうございました。
- iekjqo
- ベストアンサー率19% (7/36)
Sleipnirユーザではない為確実とは言えませんが、Sleipnirのウェブサイトを見る限りVBAを使えるようなので、エクセルVBAで全て実現可能と思われます。
お礼
早速のご回答ありがとうございます。 喜んで実行してみたのですが、「ActiveXコンポーネントはオブジェクトを作成できません」と表示され、動きませんでした。 ActiveXの実行は許可しているのですが、ほかにどんなどんな原因が考えられるのでしょうか。 検索はしてみたのですが、それらしいものは見つからずお手上げ状態です。