前のログ 次のログ

No.4100 RE:F10キーの使い方  投稿者:花ちゃん [02/3/16(土)21:49分]

[F10]キーはプログラムのメニューバーをアクティブにします。


詳しくはWindowsのヘルプで[一般的なショートカットキー]を調べて下さい。



No.4099 re エクセルに表示  投稿者:土素人 [02/3/16(土)20:15分]

ありがとうございます。早速試してみます

No.4098 Re:GetCurrentImageについて  投稿者:K.J.K. [02/3/16(土)18:59分]

ちょっと待って下さい。とりあえずサンプルを作りますので、しばしお待ちを。


No.4097 Re:GetCurrentImageについて  投稿者:ねむら [02/3/16(土)16:31分]

K.J.K.さん、いつもありがとうございます。


VBを始めてまだ半年の超初心者の為
K.J.K.さんの書かれている内容が私には濃い為
今一つ理解するところまでいってないのですが・・・
もう少し噛み砕いて書いて頂けると大変うれしいです。

>Call objVideo.GetCurrentImage(lngLength, ByVal 0&)
>ReDim bytImage(0& To lngLength - 1&) As Byte
>lngPointer = VarPtr(bytImage(0&))
>Call objVideo.GetCurrentImage(lngLength, lngPointer)

>ReDimもVarPtr(bytImage(0&))を設定する必要はありません。
>得た値をByte型の配列として変換することになります。

K.J.K.さんが書いてくださった内容は
具体的にはどの様な感じで訂正になっているのでしょうか。
また、

>ただ、このメソッドは確実ではありません。

GetCurrentImageメソッドでは必ずしも画像の取得ができないということなのですか。
毎回、お手を煩わせてしまい申し訳ありませんがよろしくお願い致します m(_ _)m

No.4096 F10キーの使い方  投稿者:VB初心者 [02/3/16(土)16:18分]

F10キーの認識について教えていただきたいことがあります。

現在、MSFlexGridで「F7」で上移動、「F8」で下移動、「F9」で右移動、 「F10」で左移動
という仕様のプログラムを作成しているのですが、F10だけ必ず2度目(偶数度目)の 入力が認識できてないのです。
F10を一度押した後に、たまたまenterを押したらフォームの左上に「移動、閉じる」の メニューが出ました。

F10というキーはなにか特殊キーという形になっているのでしょうか?
必ずF10キーを押すたびに左移動をさせるということはできないのでしょうか?

もしご存知の方がいましたら、教えてください。宜しくお願いします。

No.4095 Re: GetCurrentImageについて(訂正)  投稿者:K.J.K. [02/3/16(土)14:07分]

# 訂正。


下記に書いたのは間違って失敗したコードです。

ReDimもVarPtr(bytImage(0&))を設定する必要はありません。
得た値をByte型の配列として変換することになります。面倒ならば配列などに
移さず、そのままAPI関数を使ってファイルに書き出してしまえばいいでしょう。

No.4094 Re: GetCurrentImageについて  投稿者:K.J.K. [02/3/16(土)13:51分]

メソッドとしては、このメソッドで行うのですが、QuartzTypeLib中の宣言では、

実際には利用することができません。

QuartzTypeLibでは、
HRESULT __stdcall IBasicVideo::GetCurrentImage
( [in, out] long *pBufferSize,
[out] long *pDIBImage );
となっていますが、本来は
HRESULT __stdcall IBasicVideo::GetCurrentImage
( [in, out] long *pBufferSize,
[in, out] void *pDIBImage );
となっていなければVBでは利用できません。そのため、この部分を作り直した
タイプライブラリを用意する必要があります。

訂正されているものならば、
Dim bytImage() As Byte
Dim lngLength As Long
Dim lngPointer As Long
Dim objVideo As IBasicVideo

Call objVideo.GetCurrentImage(lngLength, ByVal 0&)
ReDim bytImage(0& To lngLength - 1&) As Byte
lngPointer = VarPtr(bytImage(0&))
Call objVideo.GetCurrentImage(lngLength, lngPointer)
とすれば、bytImageにデータが格納されます。

ただ、このメソッドは確実ではありません。理想を言えば、グラフ中に
サンプルグラバというフィルターを追加して、利用する方がいいでしょう。
今月発売予定のサンプルでは、こちらが使えるような準備しています。
# 実際には使っていないけど。

No.4093 Re:Re:MSFlexGridの固定セル  投稿者:VB初心者 [02/3/16(土)13:34分]

ゆう(U)さん、ありがとうございます。

お礼が遅くなり申し訳ありません。
col,rowプロパティでできるとのことだったのにできなかったので、
よくよくコードを見たら、FixedCOLに移動しないように自分で制限をかけていたみたいです。(><)

ほんとに助かりました。ありがとうございました。

No.4092 下記の件の訂正  投稿者:ねむら [02/3/16(土)11:09分]

すみません。下記の件で一部訂正致します。


>BufferSizeとDIBImageには何を入れるのでしょうか。

そんなことは自分で決めなさい。って感じですよね(;^_^A
えっと、そうではなくてですね、

BufferSizeとDIBImageにはどのような内容のことが入るのですか。
例えば、コンスタント値ですとか、そういった意味合いの物があるのですか。
ということが言いたかったのです。

これでも非常にわかりにくいかもしれませんが
解釈された範囲内で構いませんのでよろしくお願い致します。

No.4091 GetCurrentImageについて  投稿者:ねむら [02/3/16(土)10:04分]

いつもお世話になっております。


先日、K.J.K.さんよりDirectShowについて日経ソフトウェアに
記載されたと教えて頂きまして、購入してみて勉強致しました。
で、お陰様である程度は使い方がわかるようになり、
自分のコードにDirectShowから動画再生をすることができました。
ありがとうございました。
で、ようやく土俵に乗ったような感じなのですが、
その動画を一時停止をしてGetCurrentImageメソッドより
その停止画像をビットマップ化できることはわかったのですが、
そのGetCurrentImageメソッドの使い方がいまいちわからないのです。

objVideo.GetCurrentImage BufferSize DIBImage

の様な使い方ですよね?(ここまでは調べてわかったのです)
でも、BufferSizeとDIBImageには何を入れるのでしょうか。
また、この状態だとそのビットマップはどこに保存されているのでしょうか。
自分でその保存場所を決められないのでしょうか。

何度もしつこくて申し訳ありませんがよろしくお願い致します。

No.4090 Re:Formの完全なDisable  投稿者:ゆう(U) [02/3/15(金)21:04分]

> Me.Enabled及びCommand1.EnabledをFalseにします。

> 処理の後にはTrueに直しました。
> 実行してみるとUI上はボタンが使用不可のようですが
> マウスでボタンをクリックしたり
> Alt+Iキーで処理が何度も呼出されてしまいます。
有効にする前に逃がせばOK。

コメント部分を変更し、動作を確認してみて下さい。

サンプル)
Private Sub Command1_Click()
Me.Enabled = False
Command1.Enabled = False
Call Test
' DoEvents
Me.Enabled = True
' DoEvents
Command1.Enabled = True
End Sub

Private Sub Test()
Dim sngTemp As Single

sngTemp = Timer + 3!
Do While sngTemp > Timer
Loop
End Sub

No.4089 RE:Formの完全なDisable  投稿者:NAO★ [02/3/15(金)20:52分]

これは

先ほどの「RE:画面の再描画について教えてください。」とは逆に
Enabled = Trueにする前に DoEvents を実行して
イベントキューをクリアすればいいです。
Private Sub Command1_Click()
Dim t As Single
Debug.Print "Click"
Command1.Enabled = False
'Me.Enabled = False 'ボタンの無効化だけで十分です
t = Timer
With Text1
'5秒間ループする
Do While (Timer - t < 5)
.Text = Timer - 1 'これは再描画されないので表示されない
Loop
End With
DoEvents '<--これを入れる
'Me.Enabled = True
Command1.Enabled = True
End Sub

No.4088 RE:画面の再描画について教えてください。  投稿者:NAO★ [02/3/15(金)20:32分]

コントロール名.Visible = False で似たようなことができると思います。

ただし Visible=True にする前に DoEvents などで画面の再描画をさせると
コントロール自体が非表示になっているので消えてしまいます。

Private Sub Command1_Click()
Dim t As Single
t = Timer
With Text1
.Visible = False
'5秒間ループする
Do While (Timer - t < 5)
.Text = Timer - t 'これは再描画されないので表示されない
'DoEvents
Loop
.Text = "終了"
.Visible = True
End With
End Sub

★コメントになっているDoEventsのコメントをはずすとコントロールが消えます

No.4087 Formの完全なDisable  投稿者:ぴんく [02/3/15(金)20:13分]

はじめまして。

検索・登録などの時間のかかる処理の間
該当フォームのマウス・キー入力処理を無効にしたいのですがうまくいきません。
どなたかご存知の方がいらっしゃったら御教授願います。

フォームにボタン(Command1)を1つおき、Captionを「&I」に設定しました。
このボタンクリック時に
時間のかかる処理を呼出し
その処理の前には
Me.Enabled及びCommand1.EnabledをFalseにします。
処理の後にはTrueに直しました。
実行してみるとUI上はボタンが使用不可のようですが
マウスでボタンをクリックしたり
Alt+Iキーで処理が何度も呼出されてしまいます。
時間のかかる処理としてこんなものを使用してテストしてみましたが、いかがしょうか?
宜しくお願いいたします。
Private Sub SubLongTask()
Dim lngCnt As Long
For lngCnt = 0 To 5000
Debug.Print lngCnt * lngCnt
Next lngCnt
End Sub


No.4086 RE:mschartの線の太さ、2系列のX−Yグラフの書き方  投稿者:花ちゃん [02/3/15(金)9:31分]

>1.グラフの線の太さの変え方

>2.同じXにおいてYの値が複数表示される方法
>(たとえばY=XとY=2Xを同じグラフに表示させる方法)

1.の方だけ 左のフレームの   MSChart関係 の
  基本的なグラフの表示方法 の 3.表示設定のサブプロシージャ作成の中の
  折れ線の場合マーカーを表示の
  series.Pen.Width = 30 '2D折れ線の太さ
  数値を大きくすれば太くなります

No.4085 画面の再描画について教えてください。  投稿者:こたに [02/3/14(木)21:25分]

こんにちは。

いつも皆さんの書き込みを参考にさせて頂いています。
AccessVBで「Echo true/false」という画面の再描画をするしないをできるのですが、
VBで同じようにするにはどのようにしたらいいか知りたいのです。
基本的な事だったらごめんなさい。
どうぞ宜しくお願いします。

No.4084 Re: エクセルに表示  投稿者:K.J.K. [02/3/14(木)21:13分]

セルの区切りにはvbTab、行の終わりにはvbNewLineを付けた文字列を作り、

ExcelでPasteするとか。

No.4083 RE:日付を表示  投稿者:花ちゃん [02/3/14(木)20:52分]

DateValue の部分を選択して [F1] キーを押して下さい。

説明と使用例が表示されます。

No.4082 日付・時刻・日数関係について  投稿者:サバオ [02/3/14(木)19:56分]

はじめまして。

時計フォームの中にアラームセットの時刻表示と次の日を表示したいのですが、 アラームセットを次の日の分だけではなく、例えば平日(月曜〜金曜)、土曜日、 日曜日の3回分入力させる場合はどうすればよいのでしょうか?
あと、sortを使ってインプットした時間と日付を日付順に並べることは可能なんでしょうか?
アドバイスよろしくお願いします。

No.4081 Re: オブジェクト名を変数で指定する方法・・・(続き)訂正  投稿者:K.M [02/3/14(木)18:36分]

K.J.K.さん、何度もありがとうございます。

今確認しました。Objectを定義してやればCallByNameで指定できるようになるんですね。
大変参考になりました。
・・・で、FontSizeプロパティなんてものもあったんですか・・・気が付きませんでした。
確かにヘルプを見ると「互換性を保つ為」という注意書きがありますね。
とりあえずこれを使えば、出来そうかな・・・本当にありがとうございました。
ソース作ったら、参考にここで書かせていただきますね。
また今後もよろしくお願いします。

No.4080 日付を表示  投稿者:ABC [02/3/14(木)18:26分]

はじめまして。 ABCです。

テキストボックスで入力して、日付変換(入力時:2002314,出力時:2002/3/14)をして
出力したいのですが「型が一致しません」とエラーが出ます。
このページ内の「指定した年月の末日を求める」を参考にしました。

下記の部分です。
'年を取り出している
yy = Year(DateValue(Text1.Text))

また、イベントは「LostFocus()」です。(間違ってますか?)

No.4079 Re: オブジェクト名を変数で指定する方法・・・(続き)訂正  投稿者:K.J.K. [02/3/14(木)17:52分]

Dim obj As Object

Set obj = CallByName(Me.Controls("Text1"), "Font", VbGet)
Call CallByName(obj, "Size", VbLet, 12)
とか。
ただ、TextBoxなど、VBの標準コントロールならば、FontSizeなどの昔のとの
互換性のためのプロパティが使えません?

No.4078 エクセルに表示  投稿者:土素人 [02/3/14(木)16:06分]

msflexgridで作った表をエクセルに表示する方法を教えてください

No.4077 mschartの線の太さ、2系列のX−Yグラフの書き方。  投稿者:SHINO [02/3/14(木)14:36分]

こんにちは


ただいまMSCHARTのVtChChartType2dXYのタイプで
グラフを書いています。
なんとか皆様のおかげでデータを読み込ませ表示するところまで行きました。
ありがとうございます。

その後の悩みなのですが、

1.グラフの線の太さの変え方
2.同じXにおいてYの値が複数表示される方法
(たとえばY=XとY=2Xを同じグラフに表示させる方法)

が、どうしたらいいかわかりません。
いろいろなヘルプなどをみても、ぜんぜん掲載されておりません。

ご存知の方、簡単なコード等あれば教えてください。
すみませんがよろしくお願いします。

No.4076 Re: オブジェクト名を変数で指定する方法・・・(続き)訂正  投稿者:K.M [02/3/14(木)14:02分]

K.J.K.さん、どうもです


> CallByName Me.Controls("Text1").Font,"Size",VbLet,14
> なのでは。

そうです、↑がCallByName の正しい指定方法だと思うのですが、
「.Font」の指定も変数指定ができる形にしたいと思っています・・・。

何度もすいません、よろしくお願いします。

No.4075 Re: オブジェクト名を変数で指定する方法・・・(続き)訂正  投稿者:K.J.K. [02/3/14(木)13:30分]

CallByName Me.Controls("Text1").Font,"Size",VbLet,14

なのでは。
プロパティ名やメソッド名が特定されているのであれば、CallByName
は不要なのでは。

No.4074 オブジェクト名を変数で指定する方法・・・(続き)訂正    投稿者:K.M [02/3/14(木)13:11分]

あ、すいません、コピー・アンド・ペーストしたCallByName の引数に「VbLet」が抜けていました

一部訂正です

(誤)
> CallByName Me.Controls("Text1"),"Left",100
> CallByName Me.Controls("Text1"),"top",100
> CallByName Me.Controls("Text1"),"text","差し替え文字"

> × CallByName Me.Controls("Text1"),"Font.Size",14
> × CallByName Me.Controls("Text1.Font"),"Size",14

(正)
CallByName Me.Controls("Text1"),"top",VbLet,100
CallByName Me.Controls("Text1"),"top",VbLet,100
CallByName Me.Controls("Text1"),"text",VbLet,"差し替え文字"

× CallByName Me.Controls("Text1"),"Font.Size",VbLet,14
× CallByName Me.Controls("Text1.Font"),"Size",VbLet,14

よろしくお願いします。

No.4073 オブジェクト名を変数で指定する方法・・・(続き)  投稿者:K.M [02/3/14(木)12:21分]

K.J.K.さん、とろさん、どうもありがとうございます。

Controls("オブジェクト名") という指定ができるとは、知りませんでした(^^;
For Each ctrlObj In Controls も教えてくださってありがとうございます、参考になりました。

これで、一歩前進できました・・・が、また壁にあたってしまいました。
CallByNameを使って、例えばテキストボックスの設定をする場合、

CallByName Me.Controls("Text1"),"Left",100
CallByName Me.Controls("Text1"),"top",100
CallByName Me.Controls("Text1"),"text","差し替え文字"

位置、文字等は上の方法で出来るようになったのですが、
フォントサイズの指定(Text1.Font.Size)はどのように指定すればいいのでしょうか?

× CallByName Me.Controls("Text1"),"Font.Size",14
× CallByName Me.Controls("Text1.Font"),"Size",14

 ↑この強引なやり方ではエラーになってしまいました・・・
 
すいませんが、ご存知でしたらどなたかよろしくおねがいいたします。


No.4072 Re: オブジェクト名を変数で指定する方法・・・  投稿者:とろ [02/3/14(木)11:44分]

> フォーム内のテキストボックスやラベル等のオブジェクトの位置や大きさ等のプロパティの設定を

> 外部のファイルで定義しておき、
> フォームのロード時にその定義ファイルを読み込んで、各オブジェクトのプロパティの値を後から
> 自由に設定(変更)できる処理を作りたいのですが、フォーム内のオブジェクト名を変数で指定す
> る方法がわからず、壁にぶち当たってしまいました。

次のような感じでいいんじゃないのかな。
フォーム上に Command1 と Text1 を適当な位置に貼り付けて、
実行してみて下さい。

Dim ctrlObj As Control
For Each ctrlObj In Controls
Select Case ctrlObj.Name
Case "Command1"
ctrlObj.Left = 0
ctrlObj.Top = 2000
ctrlObj.Caption = "ボタンです"
Case "Text1"
ctrlObj.Left = 2000
ctrlObj.Top = 0
ctrlObj.Text = "テキストです"
End Select
Next

No.4071 Re: オブジェクト名を変数で指定する方法・・・  投稿者:K.J.K. [02/3/14(木)11:32分]

Text1というテキストボックスが貼り付けてある場合は、

Debug.Print Me.Controls("Text1").Text
でTextプロパティが参照できますよね。

No.4070 オブジェクト名を変数で指定する方法・・・  投稿者:K.M [02/3/14(木)10:53分] http://homepage2.nifty.com/kmiyata/

はじめまして。質問ですがよろしくお願いします。


フォーム内のテキストボックスやラベル等のオブジェクトの位置や大きさ等のプロパティの設定を
外部のファイルで定義しておき、
フォームのロード時にその定義ファイルを読み込んで、各オブジェクトのプロパティの値を後から
自由に設定(変更)できる処理を作りたいのですが、フォーム内のオブジェクト名を変数で指定す
る方法がわからず、壁にぶち当たってしまいました。

いろいろ調べたところ、CallByNameを使えばオブジェクトのプロパティ名は変数で指定できる事は
わかったのですが、この場合オブジェクト名の指定は固定なので、今作ろうとしている処理では
使えないのです。

どなたかご存知の方教えて頂けないでしょうか?
宜しくお願いいたします。

No.4069 MSCHARTでのデータの取込方教えてください。  投稿者:SHINO [02/3/13(水)17:17分]

はじめまして。

SHINOと申します。
現在、MSCHARTでy=axやy=sinxのようなグラフを書きたいと思ってます。
タイプは(VtChChartType2dXY)というのをつかってます。

データの取り込み方などが上手く行かず、まったく似てもいないグラフになってしまいます。
問題は、X,Yの取り込み方だと思うのですが、

そのようなグラフのサンプルコードなどを探してみましたが、どこにもありません。

ご存知の方、サンプルのコードを教えてもらえないでしょうか?

またはサンプルのあるHP等を知ってる方いましたら、URLを教えてください。

すみませんが、よろしくお願いします。

No.4068 RE:初心者の質問?  投稿者:花ちゃん [02/3/12(火)22:33分]

色んな方法があるかと思いますが?

正確に5秒(精度が低い)でなくてもいいのなら

Private Sub Command1_Click()
'タイマー関数を使って5秒間待つ
Dim lngSt As Long
Label1.Caption = "「正解?」"
lngSt = Timer
Do While Timer - lngSt < 5
DoEvents '制御をWindowsに渡す
Loop
Label1.Caption = "「・・・・せいかい!」"
End Sub

No.4067 初心者の質問?  投稿者:ぽーかー [02/3/12(火)22:12分]

初めまして。VBを初めて一ヶ月に満たないビギナーなぽーかーです。

で、おそらく初心者の質問なんですけど、一つのラベルの中で、文字を
数秒くらい時間を置いて切り替えるのって
どうやるんですか?
例えば最初に「正解?」って表示させて、
5秒後に「・・・・せいかい!」と表示を変える、という感じのモノ。

なんか、簡単にできそうなんですけどねえ。
よろしくおねがいします。

No.4066 Re:MSFlexGridの固定セル  投稿者:ゆう(U) [02/3/12(火)13:48分]

> カーソルを移動するときは固定を解除して、スクロールするときは固定にするようにするしか

> ないのでしょうか?
カレントセルを固定列のセルへ移動させたいのであれば、
「Col、Row プロパティ」で移動は可能です。

一度固定列・固定行の部分へ移動したら後はその中では
矢印キーで移動できます。

普通は固定列・固定行などのキャプションを変更するのは
特殊なアクションが必要で通常セルと変更操作が異なる
事は問題はないのでは?


手っ取り早いのは「MouseCol、MouseRow プロパティ」と
組み合わせるとか・・・

No.4065 Re: mshtml.dll、witheventsについて  投稿者:K.J.K. [02/3/12(火)11:49分]

結果報告ありがとうございます。


以下、本筋とはちょっと関係のない一般論を書いておきます。

WebBrowserコントロールを貼り付けたとき、その文書をあらわすオブジェクト
(これはActiveX Documentです)は、WebBrowser.Documentプロパティによって
参照できます。

このActiveX Documentは、一般的なHTMLならばHTMLDocument(mshtml.dllかtlb)ですし、
ファイル一覧などならばShellFolderView(shdoc401.dllかshell32.dll)です。
これ以外のActiveX Documentならば、その元となるDLLを参照設定すれば扱えます。

参照設定している場合は、事前バインディングのメリットを活かすために、それぞれ
のオブジェクト型の変数を宣言して使う方がいいでしょう。

Dim objDocument As HTMLDocument
Dim objCollection As IHTMLElementCollection
Dim objLink As HTMLLinkElement

On Error Resume Next
Set objDocument = WebBrowser1.Document
If (False = (objDocument Is Nothing)) Then
Set objCollection = objDocument.links
If (False = (objCollection Is Nothing)) Then
For Each objLink In objCollection
If ("適当なURL" = objLink.target) Then
' ....
End If
Set objLink = Nothing
Next
Set objCollection = Nothing
End If
Set objDocument = Nothing
End If
Call Err.Clear
On Error GoTo 0

という感じで。

No.4064 Re: mshtml.dll、witheventsについて    投稿者:BB [02/3/12(火)11:12分]

 お世話になります。


WebBroserについて要素の取得およびイベントの発生ができましたので報告を。

要素の取得は、
WebBroser.document.cookie(クッキーの参照)
WebBrowser.document.links(index)(リンクの参照)
などで取得でき、またイベントの発生は
HTMLタグに"NAME属性"、もしくは"ID"属性をつけておき、Witheventsでイベントを 発生させることができました。

Option Explicit
Private WithEvents Button1 As MSHTML.HTMLButtonElement

Private Sub WebBrowser_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
set Button1 WebBroser.Document.Forms("form1").elements("BUTTON1")
end Sub

Private Function Button1_onclick() As Boolean
MsgBox ("ボタンがクリックされました。")
IE_onclick = True
End Function

"mshtml.dll"をプロジェクト→参照設定する必要があります。

No.4063 Shell関数で起動したアプリの終了(Re: Shell関数)  投稿者:K.J.K. [02/3/12(火)11:09分]

Shell関数の戻り値はプロセスIDなので、これを利用してAPI関数を呼び出せば

終了は不可能ではありません。が、本当に終了していいのかを考えましょう。

No.4062 Shell関数  投稿者:ひろ [02/3/12(火)9:54分]

Shell関数を使用して,起動させたプログラムを,VBで終了させることって出来ますか?

No.4061 Re: mshtml.dll、witheventsについて  投稿者:K.J.K. [02/3/11(月)21:31分]

とりあえず、値がかえられるかどうかは、まずは自分で試して見てください。

で、プロパティの参照ですが、一行で済ませようとしないで、それぞれ別個に
代入して参照することを勧めます。単純なエラートラップで済ますのならば、
そうしなくてもいいですけど。

No.4060 Re: mshtml.dll、witheventsについて    投稿者:BB [02/3/11(月)21:22分]

さっそくのレスありがとうございます。

(自分の投稿をみようと更新ボタンをおしてしまい2重投稿してしまいました。すみません。)

>WebBrowserコントロールのDocumentプロパティで、HTMLDocumentオブジェクトが
>得られますよね。そこからlinksプロパティなどでエレメントのコレクションを得て、
>その中から適切な要素を探し出して使えば可能でしょう。

値の読み出しは
WebBrowser.Document.links
などで可能と理解しました。
また、もしも「リンクをクリックされた」やHTMLの「テキストボックスが入力された」なんていう
イベントをVB側で知ることも同様の考えで可能なのでしょうか?
その際に値(HTML側の値)を変更できたりするのかどうかも知りたいです。
ヒントをいただければ幸いです。よろしくお願いします。



No.4059 Re: mshtml.dll、witheventsについて  投稿者:K.J.K. [02/3/11(月)20:53分]

# 重複して書き込まないように気を付けましょう。


WebBrowserコントロールのDocumentプロパティで、HTMLDocumentオブジェクトが
得られますよね。そこからlinksプロパティなどでエレメントのコレクションを得て、
その中から適切な要素を探し出して使えば可能でしょう。

No.4058 mshtml.dll、witheventsについて  投稿者:BB [02/3/11(月)19:57分]

 はじめまして。はじめて質問します。少しわかりにくいかもしれませんが、よろしければお教えください。


コンポーネント→Internetcontrol
でWebBrowserをコンポーネントしてHTMLドキュメントを表示しています。

そこで、HTML文章内のリンク(<A HREF="***.html">)やボタン(<Input type="Button">)などを
VBからオブジェクトとして参照しようと試みているのですが、うまくいきません。
というよりも、やり方自体がわかっておりません。mshtmlとwitheventsを使用することは
なんとなく調べてわかったのですが、よろしければどなたか有識者のかたは教えていただけないでしょうか
もしくは、「そんなことはできないよ」っていうことでも結構です。

最終的には、HTMLドキュメントのある要素をクリック(もしくは選択)されたときにいろいろとVB側で
処理を行いたいのです。

環境はVB6.0、Windows2000です。

よろしくお願いします。

No.4057 MSFlexGridの固定セル  投稿者:VB初心者 [02/3/11(月)0:10分]

MSFlexGridの固定セル(スクロールバーでスクロールさせてもスクロールしないセル)に文字を入力したい

のですが、文字の入力自体は可能だと思ってます。
ただ、入力セルにカーソルを移動することができなくて困っています。

カーソルを移動するときは固定を解除して、スクロールするときは固定にするようにするしか
ないのでしょうか?
変な使い方ばかり質問してすみません。よい方法をご教授ください。

No.4056 リストボックスの内容をクリップボードに  投稿者:真紀子 [02/3/10(日)17:25分]

花ちゃんさん、K.J.K. さん 回答ありがとうございます。

さっそく、試してみたいと思います。

No.4055 Re: リストボックスの内容をクリップボードに  投稿者:K.J.K. [02/3/10(日)11:53分]

リストボックスのどの内容を送るのかにもよりますけど、


Dim strData As String
Dim intLoopCounter As Integer

' 選択されている一行だけならば
strData = ListBox1.Text

' 選択されている複数行ならば
For intLoopCounter = 0 To ListBox1.ListCount - 1
If (ListBox1.Selected(intLoopCounter)) Then
strData = strData & ListBox1.List(intLoopCounter) & vbNewLine
End If
Next

' 全ての行を送るのならば
For intLoopCounter = 0 To ListBox1.ListCount - 1
strData = strData & ListBox1.List(intLoopCounter) & vbNewLine
Next

上のどれかの経路を選んだ上で、
Call Clipboard.SetText(strData)
すればいいんじゃないかと。

No.4054 RE:リストボックスの内容をクリップボードに  投稿者:花ちゃん [02/3/10(日)11:46分]

ほかにいい方法があれば、別ですが


一旦テキストボックスに書き込んでそれをクリップボードにコピーするってのは
どうでしょうか?
テキストボックスは非表示にしておけば見えないし

No.4053 リストボックスの内容をクリップボードに  投稿者:真紀子 [02/3/10(日)10:28分]

いつもお世話になっております。

早速、質問させて頂きます。
リストボックスに表示されている内容をクリップボードに送りたいのですが?
どのような方法を取れば出来るのでしょうか?
ご存知の方教えて頂けないでしょうか?よろしくお願いします。


No.4052 CommandButtonのプロパティについて    投稿者:か [02/3/10(日)8:39分]

全角スペースで左詰めができました。

 ありがとうございました。

No.4051 RE:CommandButtonのプロパティについて  投稿者:花ちゃん [02/3/09(土)21:41分]

>後にスペースを追加してもだめでした


Excel のVBA のなら 全角のスペースを入れればできますが。


前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0