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#は使う時 他の言語はしらん。あくまでイメージ。
Sub foo() For i = 1 To 10 If True Then Next End Sub 0430デフォルトの名無しさん (ワッチョイ 9e8c-0USI)2019/02/23(土) 09:20:01.07ID:CvvsLWYy0 エラーってコードのエラーのことか 実行時のことかと思った 0431デフォルトの名無しさん (ワッチョイ 3968-rusg)2019/02/23(土) 09:21:13.09ID:Cm202fZQ0 あぁ、実行時エラーの可能性もあるか あれはactiveにしてないsheetのcellをselectした時はハマったけどそれ以外は特に・・・ 0432デフォルトの名無しさん (ワッチョイ 9e8c-0USI)2019/02/23(土) 09:21:56.77ID:CvvsLWYy0 唯一(?)の短絡評価である Select Case のリストはクソだと思いながらたまに使う