Excel VBA質問箱 IV

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

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


5809 / 13645 ツリー ←次へ | 前へ→

【48730】対話型MsgBoxについて RED 07/5/3(木) 22:12 質問[未読]
【48731】Re:対話型MsgBoxについて かみちゃん 07/5/3(木) 22:44 回答[未読]
【48732】Re:対話型MsgBoxについて RED 07/5/4(金) 8:48 お礼[未読]
【48733】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 10:27 発言[未読]
【48736】Re:対話型MsgBoxについて RED 07/5/4(金) 11:22 質問[未読]
【48737】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 11:36 発言[未読]
【48739】Re:対話型MsgBoxについて RED 07/5/4(金) 12:31 お礼[未読]
【48740】Re:対話型MsgBoxについて RED 07/5/4(金) 13:21 質問[未読]
【48741】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 13:25 発言[未読]
【48742】Re:対話型MsgBoxについて RED 07/5/4(金) 14:39 質問[未読]
【48744】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 16:43 発言[未読]
【48749】Re:対話型MsgBoxについて RED 07/5/4(金) 18:04 質問[未読]
【48750】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 18:16 発言[未読]
【48752】Re:対話型MsgBoxについて RED 07/5/4(金) 18:52 質問[未読]
【48753】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 19:03 発言[未読]
【48756】Re:対話型MsgBoxについて RED 07/5/4(金) 20:39 質問[未読]
【48757】Re:対話型MsgBoxについて ぱっせんじゃー 07/5/4(金) 20:47 発言[未読]
【48758】Re:対話型MsgBoxについて かみちゃん 07/5/4(金) 20:54 発言[未読]
【48759】Re:対話型MsgBoxについて RED 07/5/4(金) 21:32 お礼[未読]

【48730】対話型MsgBoxについて
質問  RED  - 07/5/3(木) 22:12 -

引用なし
パスワード
   MsgBoxに3月分の集金は、Aさん3,000円 Bさん2,500円 Cさん1,850円
この金額を修正しますかをはいといいえで選択出来るようにしたいのですが
どなたか教えて下さい。

次のようにセルに入力しています
A3 3月
C2 Aさん
E2 Bさん
G2 Cさん
C3 3,000
E3 2,500
G3 1,850

【48731】Re:対話型MsgBoxについて
回答  かみちゃん  - 07/5/3(木) 22:44 -

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

>MsgBoxに3月分の集金は、Aさん3,000円 Bさん2,500円 Cさん1,850円
>この金額を修正しますかをはいといいえで選択出来るようにしたい

以下のような感じでできると思います。

Sub Sample()
 Dim Ret As Integer
 
 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
        Range("C2").Value & Format(Range("C3").Value, "#,##0円 ") & _
        Range("E2").Value & Format(Range("E3").Value, "#,##0円 ") & _
        Range("G2").Value & Format(Range("G3").Value, "#,##0円 ") & vbCrLf & _
        "この金額を修正しますか?", vbYesNo)
 If Ret = vbYes Then
  MsgBox "はいがクリックされた"
 Else
  MsgBox "いいえがクリックされた"
 End If
End Sub

詳しくは、MsgBox関数のヘルプをご確認ください。

【48732】Re:対話型MsgBoxについて
お礼  RED  - 07/5/4(金) 8:48 -

引用なし
パスワード
   かみちゃん 
ありがとうございます

かみちゃんのコードのとおり試したみますたがうまくいきませんでした。
申し訳ございませんが再度ご協力宜しくお願いします。

【48733】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 10:27 -

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

>コードのとおり試したみますたがうまくいきませんでした。

どのようなコードにしたら、うまくいかないのかの説明がないのに、どのように
協力したらいいのでしょうか?
こちらでは、サンプルシートを作って動作確認してありますよ?
エラーが出るなら、エラーメッセージとエラーになるコードを提示しましょう。

【48736】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 11:22 -

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


Sub Sample()
Dim Ret As Integer
 
Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
Range("C2").Value & Format(Range("C3").Value, "#,##0円 ") & _ Range("E2").Value & Format(Range("E3").Value, "#,##0円 ") & _
Range("G2").Value & Format(Range("G3").Value, "#,##0円 ") & vbCrLf
  "この金額を修正しますか?", vbYesNo)
 If Ret = vbYes Then
  MsgBox "はいがクリックされた"
 Else
  MsgBox "いいえがクリックされた"
 End If
End Sub

Range("A3").ValueとFormatにあいだにある&と金額のあとの&の_に
コンパインエラーと出てしまいます。
VBA初心者なのでまだまだわからない事が多々あります。
宜しくお願いします。

【48737】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 11:36 -

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

>Range("A3").ValueとFormatにあいだにある&と金額のあとの&の_に
>コンパインエラーと出てしまいます。
>VBA初心者なのでまだまだわからない事が多々あります。

私が提示した[48731]をまずは、そのまま試されました?
記述の仕方が明らかに違うことはわかりますか?
ポイントは、 & _ という書き方です。
コードを見やすいように私が書いてしまったのが原因かもしれませんが・・・

行継続文字( _(スペース+アンダースコア))については、以下などを参照してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/modcore/html/deconFormattingCode.asp
(先頭4文字は、全角なので半角にしてください。)

【48739】Re:対話型MsgBoxについて
お礼  RED  - 07/5/4(金) 12:31 -

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

ありがとうございました。
勉強になりますた。
またご指導宜しくお願いします。

【48740】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 13:21 -

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

もうひとつお聞きしたいのですが先程の対話型MsgBoxから
はいを選んだら"一覧表"のシート名を選択してあらかじめ閉じていた
D列、F列、H列を開いてD4にアクティブセルを移動して
いいえを選んだ時は、現在開いているシートのC3にアクティブせるを
移動する仕方を教えて下さい。

【48741】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 13:25 -

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

>"一覧表"のシート名を選択してあらかじめ閉じていた
>D列、F列、H列を開いてD4にアクティブセルを移動して
>現在開いているシートのC3にアクティブせるを
>移動する

両方とも、「マクロの記録」で記録すればできることです。
まずは、試してみて、どうしてもわからなければ、そのコードを提示して聞いてください。
また、自己解決した場合も、どのように解決したかを提示していただけると、
掲示板を見ている同じ悩みを抱えた方のお役にも立てられると思います。

【48742】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 14:39 -

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


Sub Sample()
 Dim Ret As Integer
 
 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
 Range("C2").Value & Format(Range("C3").Value, "#,##0円 ") & _
 Range("E2").Value & Format(Range("E3").Value, "#,##0円 ") & _
 Range("G2").Value & Format(Range("G3").Value, "#,##0円 ") & vbCrLf & _
  "この金額を修正しますか?", vbYesNo)
 If Ret = vbYes Then
  Sub Sample()
Dim Ret As Integer

 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & vbCrLf & _
 "この金額を修正しますか?", vbYesNo)
If Ret = vbYes Then

  Sheets("一覧表").Select
  Columns("D:D").Select
  Selection.ColumnWidth = 0
  Columns("F:F").Select
  Selection.ColumnWidth = 0
  Columns("H:H").Select
  Selection.ColumnWidth = 0
  Range("D4").Activate

  Else
  Range("C3").Select
  End If
End Sub
 
  はいを選んだときエラーが出て400って表示されます。
  どうすれば一覧表のシートのD4にアクティブセルを移動できますか。

【48744】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 16:43 -

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

>  はいを選んだときエラーが出て400って表示されます。

提示されたコードは、本当に、MsgBoxが表示されますか?
基本的におかしいコードですので、再度動くコードを提示してください。
原因解析と回避方法の説明はそれからです。

なお、こちらで少し修正した上で検証したところエラーは出ません。
(Excel2002SP3で検証)
ただし、D列の列幅を0にして、D4をアクティブにしたいのですか?

【48749】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 18:04 -

引用なし
パスワード
   ▼かみちゃん こんにちは。
Sub Sample()
Dim Ret As Integer

 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & _
 Range("E2").Value & Format(Range("E3").Value, "#,###0円 ") & _
 Range("G2").Value & Format(Range("G3").Value, "#,###0円 ") & vbCrLf & _
 "この金額を修正しますか?", vbYesNo)
If Ret = vbYes Then
  Sheets("一覧表").Select
  Columns("D:D").Select
  Selection.ColumnWidth = 8.38
  Columns("F:F").Select
  Selection.ColumnWidth = 8.38
  Columns("G:G").Select
  Selection.ColumnWidth = 8.38
  Sheets("一覧表").Select
  Range("D4").Select
  Else
  Range("C3").Select
  End If

さっき添付したコードは、おかしいでした。
申し訳ございません
こんな感じで試してみました
やはりはいで答えたあとうまく一覧表のシートのD3に
移動できませんでした。
ご協力お願いします。

【48750】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 18:16 -

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

>やはりはいで答えたあとうまく一覧表のシートのD3に
>移動できませんでした。

こちらで検証した結果、ご提示のコードでは、D3ではなく、D4に移動されます。
今度は、エラーが出なくなったのでしょうか?

試しに、
MsgBox "D4に移動します"
Range("D4").Select
のような感じにして確認してみてください。

【48752】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 18:52 -

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


Sub Sample()
Dim Ret As Integer
 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & _
 Range("E2").Value & Format(Range("E3").Value, "#,###0円 ") & _
 Range("G2").Value & Format(Range("G3").Value, "#,###0円 ") & vbCrLf & _
 "この金額を修正しますか?", vbYesNo)
If Ret = vbYes Then
  MsgBox ("D3に移動します")
  Range("D3").Select

  Sheets("一覧表").Select
  Columns("D:D").Select
  Selection.ColumnWidth = 8.38
  Columns("F:F").Select
  Selection.ColumnWidth = 8.38
  Columns("G:G").Select
  Selection.ColumnWidth = 8.38
  
Sheets("一覧表").Select
  Range("D3").Select
  Else
  Range("C3").Select
  End If


はいで答えたあとうまく[一覧表]のシートのD3に
移動しましたが出来ませんでした。

【48753】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 19:03 -

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

>はいで答えたあとうまく[一覧表]のシートのD3に
>移動しましたが出来ませんでした。

「移動しましたが出来ません」とは、どういう意味ですか?
どうなってくれたら「出来た」になるのでしょうか?
すみません。揚げ足取っているわけではなくて、本当に意味がわかりません。

そのコードでD3に移動することを動作確認していますが、
 Range("D3").Select
の代わりに
 Application.Goto Range("D3")
としたらどうですか?

あと、一度新規ブックで試してみてください。

【48756】Re:対話型MsgBoxについて
質問  RED  - 07/5/4(金) 20:39 -

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


Sub Sample()
Dim Ret As Integer

 Ret = MsgBox(Range("A3").Value & "分の集金は、" & _
 Range("C2").Value & Format(Range("C3").Value, "#,###0円 ") & _
 Range("E2").Value & Format(Range("E3").Value, "#,###0円 ") & _
 Range("G2").Value & Format(Range("G3").Value, "#,###0円 ") & vbCrLf & _
 "この金額を修正しますか?", vbYesNo)
If Ret = vbYes Then
  Sheets("sheet2").Select
  Appliction.Goto Range("D3")
  Else
  Range("C3").Select
  End If
End Sub


Appliction.Goto Range("D3")で試してみました。
わかりやすくSheet2にしました。
Appliction.Goto Range("D3")にしましたら
オブジェクトが必要ですとメッセージが出ました。
オブジェクトと言われてもよくわかりません。

はいを選択したらSheet2のD3に移動する方法が知りたいので
宜しくお願いします。

【48757】Re:対話型MsgBoxについて
発言  ぱっせんじゃー  - 07/5/4(金) 20:47 -

引用なし
パスワード
   横から失礼します。

>Sheets("sheet2").Select
>  Appliction.Goto Range("D3")

↓では?

Appliction.Goto Sheets("sheet2").Range("D3")

【48758】Re:対話型MsgBoxについて
発言  かみちゃん  - 07/5/4(金) 20:54 -

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

>Appliction.Goto Range("D3")にしましたら
>オブジェクトが必要ですとメッセージが出ました。
>オブジェクトと言われてもよくわかりません。

私の[48753]のコメントを今一度よく見てください。
Appliction.〜とは書いていません。
一文字ずつ入力するのも練習だからいいのですが、コピー貼り付けしたらどうですか?
こちらでは、すべて動作確認のうえ、投稿していますから。

ぱっせんじゃーさん、フォローありがとうございます。

【48759】Re:対話型MsgBoxについて
お礼  RED  - 07/5/4(金) 21:32 -

引用なし
パスワード
   ▼かみちゃん こんばんわ
長い間お付き合いさせてどうもありがとうございました。
スペルが間違ってたらうまくいくはずありませんね

ぱっせんじゃーさんもありがとうございます。

ご協力本当にありがとうございました。

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