Private Sub UserForm_activate() '多分一回呼ばないとダメ WebBrowser1.Navigate ("https://example.com") End Sub
Private Sub UserForm_Click() html = "<div>foo</div>" WebBrowser1.Document.body.InnerHtml = html End Sub 0323デフォルトの名無しさん (ワッチョイ 8702-5sVJ)2019/02/19(火) 16:06:51.67ID:XJA9DtkM0 四角の領域を表す構造体にRECTというのがありますが、領域が10個あってしかも定数です その中にあるポイントがあるかどうかを判断するのに、 PtInRectを使いますが、10個のRECT領域をどうやって 定義するのか考えています Dim rect1 as RECT, rect2 as RECT ,,,,, rect10 as RECT とやって、これらに定数を代入するときにいちいち rect1.Top = 10 rect1.Left =10 --- rect10.Bottom = 1000 rect10.Right = 1970 とかやってたら大変です。 Cとかなら rect1 = CRect( 10,10,100,100) って出来ますが、VBAでは出来ませんか。 またやりたいのは、PtInRectなので、簡単に
if PtInRect( CRect( 10,10,100,100), x,y) <> 0 then
private Function getCSVData(byval ...)as string() Dim tarArr() //処理 getCSVData=tarArr end Function こんな感じで配列にして1次元が行、2次元が列に格納したいんですが ReDim、ReDim Preserveのタイミング等々が分かりません。
Public Type Rect Top As Integer: Left As Integer: Bottom As Integer: Right As Integer End Type Public Function CRect(Top As Integer, Left As Integer, Bottom As Integer, Right As Integer) As Rect Dim r As Rect r.Top = Top: r.Left = Left: r.Bottom = Bottom: r.Right = Right CRect = r End Function Public Function PtInRect(Rect As Rect, x As Integer, y As Integer) As Boolean If Rect.Left < x And Rect.Right > x And Rect.Top < y And Rect.Bottom > y Then PtInRect = True End If End Function Public Sub test() Dim r(10) As Rect r(1) = CRect(10, 10, 100, 100) '... If PtInRect(r(1), 15, 180) Then MsgBox "In Rect1" End If If PtInRect(CRect(10, 10, 100, 100), 15, 80) Then MsgBox "In Rect2" End If End Sub 改行多すぎらしいので:で詰めて書いてる 0334デフォルトの名無しさん (ワッチョイ 5f2f-dPPD)2019/02/19(火) 21:25:35.60ID:eXSGnhOj0>>329 エクセルでCSV開いてシートをそのまま2次元配列に突っ込めば良いんじゃないか 0335デフォルトの名無しさん (ワッチョイ 5f4f-nFDO)2019/02/19(火) 21:47:03.10ID:LH3y88CS0>>319 え? そうなの? それは知らなかった。
For i= 0 to 100 for j = 0 to 100 iとjを使った処理 next next この時、Dim j as Integer ってどこに書きますか? 「For i= 0 to 100」の上か下かという質問です。 0338デフォルトの名無しさん (ワッチョイ 2735-cT+3)2019/02/19(火) 22:37:52.77ID:XTzrMDQC0 定義は一番最初にまとめて全て書くと管理しやすい 個人的にはそもそも書かないけどな〜 0339デフォルトの名無しさん (ワッチョイ 071f-BmB6)2019/02/19(火) 22:45:04.21ID:VgLhyIar0>>330 自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは 例えば、行数読んだ結果がLcnt=10だとして まず
ReDim(Lcnt,0)で作り 配列(0 to 10,0)ができ Redim Preserve(Lcnt,Ubound(Split(1行目)) 区切った値が5なら 配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます? と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね? ifか何かで要素数は増える時だけRedim Preserveのが良いですかね? 0340デフォルトの名無しさん (スプッッ Sdff-BmB6)2019/02/19(火) 22:50:47.62ID:VJWnLClRd>>337 VBは上にまとめ C#は使う時 他の言語はしらん。あくまでイメージ。