Excel VBA質問箱 IV

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

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


1533 / 13644 ツリー ←次へ | 前へ→

【73782】不特定多数の文字列連結 gg54 13/2/14(木) 12:13 質問[未読]
【73783】Re:不特定多数の文字列連結 UO3 13/2/14(木) 14:05 発言[未読]
【73784】Re:不特定多数の文字列連結 UO3 13/2/14(木) 14:18 発言[未読]
【73785】Re:不特定多数の文字列連結 gg54 13/2/14(木) 15:21 お礼[未読]
【73786】Re:不特定多数の文字列連結 UO3 13/2/14(木) 18:12 発言[未読]
【73802】Re:不特定多数の文字列連結 gg54 13/2/16(土) 10:43 お礼[未読]

【73782】不特定多数の文字列連結
質問  gg54  - 13/2/14(木) 12:13 -

引用なし
パスワード
   初心者です。お世話になります。

希望したセルに他の不特定多数のセルの内容を結合させて表示させる為に

Selection.Value = Range("**").Value & Range("**").Value & …

と繋げていきたいのですが

(1)不特定多数のセルの選択の仕方が解りません。
(2)不特定多数のセルの選択をマウスクリック操作で行うことは可能でしょうか。

どなたかご教示いただけないでしょうか。
よろしくお願いします。

【73783】Re:不特定多数の文字列連結
発言  UO3  - 13/2/14(木) 14:05 -

引用なし
パスワード
   ▼gg54 さん:

こんにちは

>(1)不特定多数のセルの選択の仕方が解りません。
>(2)不特定多数のセルの選択をマウスクリック操作で行うことは可能でしょうか。

ほんとに「不特定」なのであれば、自分で対象セルを選ぶしかないですねぇ。
Ctrlキーをおしながら。複数セルを選ぶということになると思いますが?

>希望したセルに他の不特定多数のセルの内容を結合させて表示させる

希望したセルというのも、どこなのかというルールはなく、操作者が、ここだと選ぶ
そういうことですか?

【73784】Re:不特定多数の文字列連結
発言  UO3  - 13/2/14(木) 14:18 -

引用なし
パスワード
   ▼gg54 さん:


ほんとに転記元も転記先も不特定ということなら、たとえば以下のような処理ですかね?
マクロで表示される2つのダイアログでコピー元と転記先をマウスで選択してください。

Sub Sample()
  Dim fR As Range
  Dim tR As Range
  Dim v() As Variant
  Dim c As Range
  Dim x As Long
  
  On Error Resume Next
  Set fR = Application.InputBox("コピーしたいセルを選んでください(複数選択可)", Type:=8)
  On Error GoTo 0
  
  If fR Is Nothing Then Exit Sub
  
  On Error Resume Next
  Set tR = Application.InputBox("転記先セルを選んでください", Type:=8)
  On Error GoTo 0
  
  If tR Is Nothing Then Exit Sub

  ReDim v(1 To fR.Count)
  
  For Each c In fR
    x = x + 1
    v(x) = c.Value
  Next
  
  tR.Value = Join(v, "")
  
End Sub

【73785】Re:不特定多数の文字列連結
お礼  gg54  - 13/2/14(木) 15:21 -

引用なし
パスワード
   ありがとうございました。
目的の動作が確認できました。

要素数が変動する場合はReDimというステートメントで要素設定するのですね。
知りませんでした。

提示されたコードを見てひとつ質疑があります。

 今回の条件ではJOIN(*、"")で連結が行われていますが、
 例えば選択した不特定多数セルの値を加算する"式" 
 Range("**")+Range("**")+…
 を不特定のセルに入力する場合は
 どのようなコードになるのでしょうか?

後学のために、教えていただければ幸いです。

【73786】Re:不特定多数の文字列連結
発言  UO3  - 13/2/14(木) 18:12 -

引用なし
パスワード
   ▼gg54 さん:

対象セルの文字列を連結するなら以下のようになります。
セル数が多くなく、またセルの文字列桁数も多くなければこれでも
問題はないかと。

転記元のセル数が不特定ですから

転記先.Value = 転記元1.Value & 転記元2.Value & 転記元3.Value & ・・・・

というコードは記述不可能だと言うことはご理解いただけますよね。

Sub Sample2()
  Dim fR As Range
  Dim tR As Range
  Dim c As Range
  Dim s As String
 
  On Error Resume Next
  Set fR = Application.InputBox("コピーしたいセルを選んでください(複数選択可)", Type:=8)
  On Error GoTo 0
 
  If fR Is Nothing Then Exit Sub
 
  On Error Resume Next
  Set tR = Application.InputBox("転記先セルを選んでください", Type:=8)
  On Error GoTo 0
 
  If tR Is Nothing Then Exit Sub

  For Each c In fR
    s = s & c.Value
  Next
 
  tR.Value = s
 
End Sub

【73802】Re:不特定多数の文字列連結
お礼  gg54  - 13/2/16(土) 10:43 -

引用なし
パスワード
   ▼UO3 さん:
ありがとうございます。
昨日から別環境で作業中でお礼が遅くなりました。
今、動作確認できないので後日さわらせていただきます。
For Each In…Next
よく理解していません、私。
…勉強します。
お手数をおかけしました。

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