Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


39214 / 76738 ←次へ | 前へ→

【42639】Re:For〜Nextを使って
回答  neptune  - 06/9/17(日) 10:30 -

引用なし
パスワード
   ▼ToShiYo さん:
こんにちは

何故か、Good Timingで書き込み見てしまいます。

>実はFor〜NextのNestについてのレベルの質問をしたつもりでした。
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=42601;id=excel
>の回答に今気がついたのですが、このような内容の質問をしたつもりでした。
とは思っていました。^ ^;
ですが、対症療法は簡単(極端な話、代わりに書いてあげればいいだけ。
丸投げには私はResをつけません。)ですが、自分である程度のコードを
書くスキルがある為、原因は頭が整理出来てないと思いました。
それで私の初回のResになったわけです。

ネストの話ですが、一般的な話になりますが、ネストが深くなればなるほど
・・・(良くない表現)なコードと言われているようです。
どこで読んだか忘れましたが、7ネストを超えればハッキリ駄目といわれても
仕方がないそうな?
勿論必要な場合は必要ですが、深まるに従って、私は頭の中がこんがらかります。

私のソースを見ればわかると思いますが、今回は必要ありません。

Sub 割引率2()
についてですが、とりあえず、「変数の宣言を強制する」がONなら
新規にモジュールを作成すればモジュールの最上部に「Option Explicit」
が宣言されます。この状態ではコンパイルは出来ません。

ソースそのものについては、まだネストの練習プログラムだから・・・
なんともいえません。ただ好みでいえばSelectionは使用しない方が
今後の身の為です。


>せっかく頂戴しましたコードですが入力した結果が0%になってしまいます。
>修正がいただけるようであれば幸いです。
大変失礼しました。手抜き検証でしたので、
ロジック抜けや間違いがあったようです。

////////////Sub GetWaribiki() の以下を差し替えてください。
///////////これは記述ミスの修正
'  3-1会員か、一般化を文字列化
  If blnkaiin = True Then
    sBuf = "会員"
  Else
    sBuf = "一般"
  End If
  '3-2 該当する基準額の行で、一般、会員を探し、割引率を取得する
  Waribiki = SearchKingaku(Worksheets("Sheet1"), kingaku, blnkaiin)
  MsgBox kingaku & "円以上の割引率は" & vbCrLf & sBuf & "割引で" & vbCrLf & _
      Waribiki * 100 & "%" & vbCrLf & " です。"


/////////Function Gaku を以下に差し替えてください。
/////////これはロジックミスの修正
Private Function Gaku(pKingaku As Long) As Long
'2.検索する額を元に基準額を探す
  Select Case pKingaku
    Case Is >= 50000
      Gaku = 50000
    Case Is >= 20000
      Gaku = 20000
    Case Is >= 10000
      Gaku = 10000
    Case Else
      Gaku = pKingaku
  End Select
End Function

上記の差し替えで全ての金額、例えば15000とか、42000とかに対応しました。
間違えておいていうのもなんですが、機能分割していれば修正も簡単でしょ?
ネストの中に入っていればややこしいですよ。

0 hits

【42588】For〜Nextを使って ToShiYo 06/9/15(金) 20:02 質問
【42596】Re:For〜Nextを使って neptune 06/9/15(金) 22:10 発言
【42604】Re:For〜Nextを使って ToShiYo 06/9/16(土) 12:17 お礼
【42615】Re:For〜Nextを使って neptune 06/9/16(土) 15:37 回答
【42635】Re:For〜Nextを使って ToShiYo 06/9/17(日) 9:07 お礼
【42639】Re:For〜Nextを使って neptune 06/9/17(日) 10:30 回答
【42667】Re:For〜Nextを使って yata 06/9/18(月) 21:08 回答
【42757】Re:For〜Nextを使って ToShiYo 06/9/20(水) 19:34 お礼

39214 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free