Excel VBA質問箱 IV

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

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


37785 / 76738 ←次へ | 前へ→

【44114】Re:Excelでの計算式設定
回答  りん E-MAIL  - 06/11/4(土) 18:06 -

引用なし
パスワード
   素人じゅうすけ さん、こんばんわ。

>どのようなことかといいますと、「指定した日付のある数字から指定した日付のある数字をひいて(計算式1・2=指定した日付のなかに引かせあいたいものが二つ)、その出た二つの数字を使って割り算(計算式3)をして答えを出す。というものです。

列番号は固定でいいのですか?
それとも、セレクトした列番号も有効なのでしょうか?
行を二つ選択した場合、選択順に計算するのか、行番号の小さい順に計算するのかどっちでしょうか?

>例で言いますと、指定した日付が5行目と8行目だとします。8行目のF列の数字を5行目のF列の数字で引き、また8行目のH列の数字を5行目のH列の数字で引きます。そして、出た二つの数字を使って割り算(例:H列の答え÷F列の答え)をさせて答えを出す。

例をそのままマクロにするとこんな感じです。
セルの選択には、InputBoxメソッドを使用しています。

Sub test()
  Dim r1 As Range, r2 As Range, rp1 As Long, rp2 As Long
  Dim dt1 As Variant, dt2 As Variant
  On Error Resume Next
   Set r1 = Application.InputBox("1つめをクリック", Type:=8)
   Set r2 = Application.InputBox("2つめをクリック", Type:=8)
  On Error GoTo 0
  If r1 Is Nothing Or r2 Is Nothing Then
   'エラー
   MsgBox "2か所選択してね", vbExclamation, "中断"
  Else
   If r1.Count + r2.Count = 2 Then
     'それぞれのセルの行番号取得
     rp1 = r1.Row: rp2 = r2.Row
     With Application.ActiveSheet
      dt1 = .Cells(rp2, 6).Value - .Cells(rp1, 6).Value
      dt2 = .Cells(rp2, 8).Value - .Cells(rp1, 8).Value
     End With
     '結果
     MsgBox dt2 / dt1, vbInformation, "H / F"
   Else
     'エラー
     MsgBox "R1 : " & r1.Address(False, False) & vbCrLf _
       & "R2 : " & r2.Address(False, False), _
       vbExclamation, "ともに単一セルのみ有効"
   End If
  End If
End Sub
0 hits

【44112】Excelでの計算式設定 素人じゅうすけ 06/11/4(土) 15:51 質問
【44114】Re:Excelでの計算式設定 りん 06/11/4(土) 18:06 回答
【44121】Re:Excelでの計算式設定 yata 06/11/4(土) 22:43 発言
【44127】Re:Excelでの計算式設定 素人じゅうすけ 06/11/5(日) 9:53 質問
【44131】Re:Excelでの計算式設定 yata 06/11/5(日) 11:06 回答
【44133】Re:Excelでの計算式設定 素人じゅうすけ 06/11/5(日) 13:01 お礼
【44126】Re:Excelでの計算式設定 素人じゅうすけ 06/11/5(日) 9:42 質問
【44129】Re:Excelでの計算式設定 りん 06/11/5(日) 9:58 回答
【44135】Re:Excelでの計算式設定 素人じゅうすけ 06/11/5(日) 13:04 お礼

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