Excel VBA質問箱 IV

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

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


10513 / 13646 ツリー ←次へ | 前へ→

【21388】コード化してください !超初心者! 05/1/20(木) 15:14 質問[未読]
【21391】Re:コード化してください IROC 05/1/20(木) 15:20 回答[未読]
【21394】Re:コード化してください !超初心者! 05/1/20(木) 15:28 回答[未読]
【21392】Re:コード化してください でれすけ 05/1/20(木) 15:24 回答[未読]
【21396】Re:コード化してください !超初心者! 05/1/20(木) 15:31 発言[未読]
【21398】Re:コード化してください IROC 05/1/20(木) 15:36 回答[未読]
【21395】Re:コード化してください G-Luck 05/1/20(木) 15:31 回答[未読]
【21404】Re:コード化してください !超初心者! 05/1/20(木) 15:57 質問[未読]
【21406】Re:コード化してください G-Luck 05/1/20(木) 16:11 回答[未読]
【21407】Re:コード化してください IROC 05/1/20(木) 16:32 回答[未読]
【21408】Re:コード化してください G-Luck 05/1/20(木) 16:34 発言[未読]

【21388】コード化してください
質問  !超初心者!  - 05/1/20(木) 15:14 -

引用なし
パスワード
   はじめまして。
早速なんですが、

=IF(Sheet1!A1="大",5,IF(Sheet1!A1="小",1,3))

どなたかコレをコード化(?)VBA化(?)していただけませんか?

お願いします。

【21391】Re:コード化してください
回答  IROC  - 05/1/20(木) 15:20 -

引用なし
パスワード
   どのようなVBAにすればよいのでしょうか?

使用法が分からないのすけど・・・ユーザー定義関数でしょうか?

【21392】Re:コード化してください
回答  でれすけ  - 05/1/20(木) 15:24 -

引用なし
パスワード
   はじめまして。

「マクロの記録」をつかってください。
 B1セルに式を入力する作業を記録したら、こうなりました。

では。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2005/1/20 ユーザー名 :
'

'
  ActiveCell.FormulaR1C1 = _
    "=IF(Sheet1!RC[-1]=""大"",5,IF(Sheet1!RC[-1]=""小"",1,3))"
End Sub

【21394】Re:コード化してください
回答  !超初心者!  - 05/1/20(木) 15:28 -

引用なし
パスワード
   あ、すみません。
=IF(Sheet1!A1="大",5,IF(Sheet1!A1="小",1,3))
シート2にこれが書いてあります。
シート1のA1の文字が「大」なら「5」に、「小」なら「1」に、
それ以外なら「3」に置換したいんです。
こんな説明でよかったんでしょうか?
すみません。

【21395】Re:コード化してください
回答  G-Luck  - 05/1/20(木) 15:31 -

引用なし
パスワード
   二つ例を示します。
こんな感じでしょうか?
bufに値が入ります。

Private Sub ss()
  Dim buf

  If Worksheets("Sheet1").Range("A1") = "大" Then
    buf = 5
  Else
    If Worksheets("Sheet2").Range("A1") = "小" Then
      buf = 1
    Else
      buf = 3
    End If
  End If
  
End Sub

Private Sub aa()
  Dim buf
  buf = IIf(Worksheets("Sheet1").Range("A1") = "大", 5, IIf(Worksheets("Sheet2").Range("A1") = "小", 1, 3))
End Sub

【21396】Re:コード化してください
発言  !超初心者!  - 05/1/20(木) 15:31 -

引用なし
パスワード
   でれすけさん、すみません。
If〜Thenの文を教えて欲しいのです。

【21398】Re:コード化してください
回答  IROC  - 05/1/20(木) 15:36 -

引用なし
パスワード
   ヘルプに詳しく書いてありますけど、読んでみたのでしょうか?

【21404】Re:コード化してください
質問  !超初心者!  - 05/1/20(木) 15:57 -

引用なし
パスワード
   G-Luck さん、すみません!
せっかく二つ書いていただいたのですが、
シート1のA1の文字が「大」なら「5」に、「小」なら「1」に、
それ以外なら「3」に、シート2のA1に置換したいのです・・・。
(シート1は元の文字のまま)
よろしくお願いします。

【21406】Re:コード化してください
回答  G-Luck  - 05/1/20(木) 16:11 -

引用なし
パスワード
   プログラムの意味は、理解していただけましたでしょうか?

シート1のA1セルは、Worksheets("Sheet1").Range("A1")です。
シート2のA1セルは、Worksheets("Sheet2").Range("A1")です。

If文は,

If 条件 then
 真の場合
Else
 偽の場合
End If

真の場合、偽の場合の部分にIf文を書くこともできます。
つまり

If 条件 then
 '真の場合
Else
 '偽の場合
 If 条件 then
  '真の場合
 Else
  '偽の場合
 End If
End If

ですね。ということは、
がんばってください。

【21407】Re:コード化してください
回答  IROC  - 05/1/20(木) 16:32 -

引用なし
パスワード
   今回のような条件のときは、
IfよりもSelect Caseの方が良いかと思います。 

【21408】Re:コード化してください
発言  G-Luck  - 05/1/20(木) 16:34 -

引用なし
パスワード
   ちなみに、イベントは分かりますか?
どのタイミングで実行したいか?
最初のシート2のA1セルの文字は入力されていないといけないのでしょうか?
VBA化する目的は?

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