Excel VBA質問箱 IV

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

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


63482 / 76738 ←次へ | 前へ→

【17852】Re:分数の表示は?
発言  ichinose  - 04/9/8(水) 19:36 -

引用なし
パスワード
   ▼ponpon さん:
こんばんは。
台風、私の地方はほとんど被害がなかったのですが、
ponpon さんの方では大丈夫でしたか?

> ヘルプなどをつかってコードを眺めてみましたが、
> 「Split関数」の使い方というか配列の考え方やtext関数の使い方や引数付きのプロシ ージャについてもよくわかりません。もう少し勉強したいと思います。
>  下のコードが分子分母を決定するところだと思いますが、よく理解できません。
>  時間がかかると思いますが、もう少し勉強します。また、小学生ですから、マイナス はだめなので、引き算の場合は、もう一工夫が必要みたいです。
> 忙しい中回答していただきありがとうございました。
> 提示していただいたコードを元に研究したいと思います。
> 
ワークシート関数のText関数を使用して乱数値を
分数文字列に書き換えています(これ使うと約分のことを考えなくて良いから)。
その後、Split関数で"/"を区切り文字として分子と分母を配列に格納しています。

>>Sub get_Fract(分子 As Long, 分母 As Long, 分母lim As Long)
>>'乱数値から、分数の分子・分母を作成する
>>'input : 分母lim---分母のリミット値(この値以下の分母を返す)
>>'output: 分子、分母
>>  Dim r As Double
>>  Do
>>   r = Rnd
>>   If r > 0 Then
>>    wk = Split(WorksheetFunction.Text(r, "??/??"), "/")
    If Val(wk(0)) > 0 And Val(wk(0)) < Val(wk(1)) And Val(wk(1)) <= 分母lim Then
'↑ここは、こっちのコードにして下さい
>>      分子 = wk(0)
>>      分母 = wk(1)
>>      Exit Do
>>      End If
>>    End If
>>   Loop
>>  Erase wk
>>End Sub

引き算の件は、私も投稿後に気づきました。
よって、Mainプロシジャーだけちょっと変更します。
'==============================================================
Sub main()
  Dim 演算子 As String
  Dim Mol(0 To 1) As Long, Deno(0 To 1) As Long
  Randomize Timer
  For idx = 1 To 30 Step 3
   For jdx = 0 To 1
    Call get_Fract(Mol(jdx), Deno(jdx), 30) '分数の分子・分母の取得
    Next jdx
   演算子 = Choose(Int(Rnd * 3) + 1, "+", "−", "×", "÷")
'                ↑ここ、4でなく、3
   If 演算子 = "−" Then '演算子が−だったら?
    If Mol(0) / Deno(0) - Mol(1) / Deno(1) < 0 Then '答えが-だったら?
      wk = Mol(0)
      Mol(0) = Mol(1)
      Mol(1) = wk
      wk = Deno(0)
      Deno(0) = Deno(1)
      Deno(1) = wk
'     ↑データを入れ替える
      End If
    End If
   Call set_計算式(Cells(idx, 1), Mol(), Deno(), 演算子) '計算式の表示
   Next
End Sub

こんなんでどうでしょうか?
私もこれ、子供に使おう!!

0 hits

【17788】分数の表示は? ponpon 04/9/7(火) 18:34 質問
【17796】Re:分数の表示は? ichinose 04/9/7(火) 23:55 回答
【17798】Re:分数の表示は? 訂正 ichinose 04/9/8(水) 0:23 発言
【17844】Re:分数の表示は? ponpon 04/9/8(水) 18:35 お礼
【17852】Re:分数の表示は? ichinose 04/9/8(水) 19:36 発言
【17854】Re:分数の表示は? 訂正の訂正 ichinose 04/9/8(水) 20:04 発言
【17855】Re:分数の表示は? ponpon 04/9/8(水) 20:26 発言
【17797】Re:分数の表示は? ちゃっぴ 04/9/7(火) 23:58 回答
【17845】Re:分数の表示は? ponpon 04/9/8(水) 18:52 お礼
【17799】Re:分数の表示は? ponpon 04/9/8(水) 0:31 発言

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