• ベストアンサー

そのソースの意味

kiyama_tの回答

  • kiyama_t
  • ベストアンサー率25% (19/74)
回答No.2

これだけでは、回答のしようがありません。 なんとなく、変数のネーミングから、 「もし、レコードカウントが0だったら、行数を1にして、ルーチン終了へジャンプ」 だろう、と思われますが。 lngRecCntの値は何か? vsgTANA(構造体?)のRowsの意味は? END_ROUTIN以下の処理はどうなっている? この辺を中心に、周辺のソースを確認してください。

関連するQ&A

  • すっきりしたソースを書くには

    エクセルVBA初心者です。 セルAの4行目から27行目までの範囲でセルDとFとGの値を消すというソースを作りたいのですが、以下のようなソースを何十個もつくるのは大変なので、もっとすっきりとした書き方はありますか? ご指導のほどお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(4, 1).Value = "" And Cells(4, 4).Value <> "" Then Cells(4, 4).Value = "" End If If Cells(4, 1).Value = "" And Cells(4, 6).Value <> "" Then Cells(4, 6).Value = "" End If If Cells(4, 1).Value = "" And Cells(4, 7).Value <> "" Then Cells(4, 7).Value = "" End If End Sub

  • この場合エクセルVBAでどう書けばいいでしょうか?

    あるシートのH列で、H21からH46のあいだで"False"がある行を非表示にしたいのです。 下記の冗長なマクロでもそうなりますが、For Nextというのを使うともっと簡潔に記述できると思うのですが、初心者のためよくわかりません。ご教示ください。 また、下記の式はシートが保護されていると働きませんが、保護したシートでも動く方法があればそれもあわせて教えていただけると幸いです。 エクセルは95です。 Sub 空白行非表示() G% = Sheets("見積書").Range("H48").Value With Sheets("見積書") Rows("19:47").RowHeight = G% If Range("H21") = False Then Rows("21").EntireRow.Hidden = True End If If Range("H22") = False Then Rows("22").EntireRow.Hidden = True End If If Range("H23") = False Then Rows("23").EntireRow.Hidden = True End If If Range("H24") = False Then Rows("24").EntireRow.Hidden = True End If 途中、繰り返しのため省略 If Range("H42") = False Then Rows("42").EntireRow.Hidden = True End If If Range("H43") = False Then Rows("43").EntireRow.Hidden = True End If If Range("H44") = False Then Rows("44").EntireRow.Hidden = True End If If Range("H45") = False Then Rows("45").EntireRow.Hidden = True End If If Range("H46") = False Then Rows("46").EntireRow.Hidden = True End If End With End Sub

  • VBAの♯の意味は何でしょうか。

    VBAのサンプルを見ていると#が使われていました。例えば #If ・・・・ then ・・・ #end if などです。この#の意味は何でしょうか。 よろしくお願いします。

  • 変数とループを使ったマクロについて

    恐縮ですが、ご教示をお願い致します。 comboboxの値を空白のtextboxに貼り付けるものです。 本を片手にマクロを作成していたのですが、上手くいかず困っております。 作成したマクロ Private Sub CommandButton100_Click() '入力値のチェック If ComboBox1 = "" Or ComboBox2 = "" Then GoTo 998 '空白ボックスを検索しデータ入力 If TextBox11 = "" And TextBox12 = "" Then TextBox11 = ComboBox1 TextBox12 = ComboBox2 GoTo 999 End If If TextBox21 = "" And TextBox22 = "" Then TextBox21 = ComboBox1 TextBox22 = ComboBox2 GoTo 999 End If If TextBox31 = "" And TextBox32 = "" Then TextBox31 = ComboBox1 TextBox32 = ComboBox2 GoTo 999 End If ↓ ↓  以下50個あります。 ↓ If TextBox501 = "" And TextBox502 = "" Then TextBox501 = ComboBox1 TextBox502 = ComboBox2 GoTo 999 End If 998 MsgBox "入力値に誤りがあります 999 End Sub とてつもなく長くなってしまいました。 変数をループを使って色々やってみたのですが、どうにもならず。。。 簡単に変数及びループを使用して纏める事は出来る物なのでしょうか? よろしくお願いいたします。

  • VisualBasic.NETでのソースの意味がわかりません…。

    Dim misscount As Integer Dim istypemode As Boolean Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim s() As String = New String() {"datemasamune", "sanadayukimura", "tyousokabemototika", "morning", "hyper", "newspaper"} Dim word As String = s(New Random().Next(0, s.GetUpperBound(0) + 1)) Label1.Text = word Label2.Text = "" istypemode = True End Sub Private Sub Form1_keypress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If istypemode And Not Char.IsControl(e.KeyChar) Then If e.KeyChar = Label1.Text.Chars(Label2.Text.Length) Then Label2.Text &= e.KeyChar End If End If End Sub ------------- 以上のソースがあるのですが、どこでどうなっているというのを教えてほしいです。 もし意味不明な部分とかありましたら教えてください。

  • このVBAソースのどこが間違ってるか教えてください

    Dim csp As Integer 'ストップ Dim css As Integer 'ストップorスタート Sub Quest2() If css = 0 Then css = 1 Quest2a Else cstp = 1 css = 0 End If End Sub Sub Quest2a() Sheets("Sheet1").Select Range("B1:J10").Select Selection.Interior.ColorIndex = x1None Range("a1").Select cstp = 0 Do r = 1: c = 5 For i = 0 To 15 If i < 9 Then Cells(r, c).Interior.ColorIndex = x1None r = r + 1 If i < 5 Then c = c + 1 Else c = c - 1 End If Cells(r, c).Interior.ColorIndex = 3 Else Cells(r, c).Interior.ColorIndex = x1None r = r - 1 If i < 13 Then c = c - 1 Else c = c + 1 End If Cells().Interior.ColorIndex = 3 End If 'タイミング For tm1 = 1 To 1000: For tm2 = 1 To 100: Next If cstp = 1 Then Exit For End If Next DoEvents If cstp = 1 Then Exit For End If If r = 3 And c = 5 Then Cells(r, c).Interior.ColorIndex = x1None End If Next DoEvents If cstp = 1 Then Exit Do End If Loop Cells(10, 9) = Cells(r, c) Cells(10, 9).Interior.ColorIndex = 8 End Sub

  • 十進ベーシックのプログラムの間違いを教えてください。

    誰か次のプログラムの間違いを直してください。入力を間違えても次に進めるようにするにはどこをどう変えたらよいのですか? RESTORE 30 READ a$ 40 INPUT b$ IF a$=b$ THEN IF a$<>b$ THEN GOTO 40 PRINT a$ GOTO 30 DATA i,x,d,k,k,h,end END IF END

  • [と”の意味を教えてください。

    http://okwave.jp/qa/q5945112.html を参考に、 Sub test1() Dim i As Integer i = 2 If i Like "[1-3]" Then MsgBox i & "です" End If End Sub Sub test2() Dim i As Integer i = 2 If i Like "[1-5]" Then MsgBox i & "です" End If End Sub Sub test3() Dim i As Integer i = 2 If i Like "[1-10]" Then MsgBox i & "です" End If End Sub を作ったのですが、 test3はうまく行きません。 意味としては、 iが "[1-10]"の中の数字の間のどれかであれば、 MsgBox i & "です" を表示させたいです。 でも上記のマクロを実行させた結果、 "[1-10]"の中で計算が行われてるのではないかと思います。 だから、test3は、1-10=-9 という事になり、msgboxが反応しないのではないかと思っています。 でもそうすると、test2だって "[1-5]"は、-4になって、i=2とは違う値なのに なぜMsgBoxが反応してしまうのかわかりません。 でもそもそも[と”の意味が分からないのでそこから教えていただけませんか? “の意味、は二つで挟んで文字列にすると思っています。

  • EXCELのVBA NULL、スペースの判断

    EXCEL2000を使用しています. 入力データはテキストファイルで VBAで 空白値のを読み飛ばししたい為 if mid(da_i,1,1) <> " " then goto aa end if で判断していますが、空白データが読み飛ばしできません. (null値ではありません) どのようにすればよいのでしょう? また、null値の場合の読み飛ばしは if mid(da_i,1,1) <> "" then goto bb end if でよいのでしょうか?

  • (VBA)フィルタがかかっているかどうかの判断方法

    フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。