Excel VBA質問箱 IV

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

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


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

【40548】教えてください さる 06/7/16(日) 14:23 質問[未読]
【40550】Re:教えてください awu 06/7/16(日) 16:02 回答[未読]
【40551】Re:教えてください さる 06/7/16(日) 17:34 質問[未読]
【40552】Re:教えてください かみちゃん 06/7/16(日) 18:22 発言[未読]
【40554】Re:教えてください さる 06/7/16(日) 21:55 お礼[未読]

【40548】教えてください
質問  さる E-MAIL  - 06/7/16(日) 14:23 -

引用なし
パスワード
   ShibuNameのデータが入っていないと
1.実行します。
ShibuNameのデータがあったら
2.実行します。

なのに ShibuNameのデータが入ってない入っても
2.実行されます。

どうしたらよいか?アドバイスお願いします。

If ShibuName = " " Then
     1.  Worksheets("プロフィール").Range("AK33") = KaName
      Else
     2. Worksheets("プロフィール").Range("AK33") = ShibuName + KaName
      End If
End If

【40550】Re:教えてください
回答  awu  - 06/7/16(日) 16:02 -

引用なし
パスワード
   コードの書き写し違いでなければ ですが・・・

> If ShibuName = " " Then
         ↑
"" の中にスペースが1個入っています。
End If が余分にある。

この状況で言えるのは、こんなところかな・・・

整理すると

With Worksheets("プロフィール").Range("AK33")
  If ShibuName = "" Then
    .Value = KaName
  Else
    .Value = ShibuName + KaName
  End If
End With

【40551】Re:教えてください
質問  さる E-MAIL  - 06/7/16(日) 17:34 -

引用なし
パスワード
   awu さんありがとうございます。
やってみましたがどうしても
2.へ実行されます。
""の問題ではないでしょうか?
ShibuName = "" なのに
2.へ実行しています。
With Worksheets("プロフィール").Range("AK33")
  If ShibuName = "" Then
  1.  .Value = KaName
  Else
  2.  .Value = ShibuName + KaName
  End If
End With

【40552】Re:教えてください
発言  かみちゃん  - 06/7/16(日) 18:22 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>ShibuName = "" なのに
>2.へ実行しています。

本当に ShibuName = "" なのでしょうか?
また、ShibuName = "" だから、1.実行しても2.を実行しても結果は同じかと
思いますので、1.を実行しているのに2.を実行していると思っているだけという
ことはありませんか?

試しに、以下を実行してみてください。
変数ShibuNameの内容および、1を実行しているか、2を実行しているかMsgBoxを表
示するようにしてみました。

Sub Test()
 Dim ShibuName As String
 Dim KaName  As String
 
 ShibuName = ""
 KaName = "KaName"
 
 MsgBox "ShibuNameの桁数=" & Len(ShibuName) & vbCrLf & _
     "ShibuNameの値=[" & ShibuName & "]"
 With Worksheets("プロフィール").Range("AK33")
  If ShibuName = "" Then
   MsgBox "1を実行します"
   .Value = KaName '1.
  Else
   MsgBox "2を実行します"
   .Value = ShibuName + KaName '2.
  End If
 End With
End Sub

【40554】Re:教えてください
お礼  さる E-MAIL  - 06/7/16(日) 21:55 -

引用なし
パスワード
   ▼かみちゃん さん
ありがとうございます。
テストのおかげで
Msgboxの表示が見て
原因がわかりました。
ShibuName = "" じゃなくて
ShibuName = " " してみたら
きちんと1.へ実行できました。
スペースが1文字空きで実行できた。
MsgBox "kaName=" & KaibuName & vbCrLf & _
     "shibuName=[" & shibuName & "]"
でテストしてみたら
ShibuName=[ ]と表示してあった。
アドバイスありがとうございました。
これから指導よろしくお願いします。

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