1つだけ過去を変えられるとしたら?

EXCELVBA
次のようなことをするマクロconbi_macroを作りたいのですが。
ヒントください。
(初期状態)
セルa
セル1←カーソルがある
セル2
セル3
セル4=N
ブランクの行
セル5
(結果)
セルa
結果のセル1=“セル1”&“セル1”&――“セルN”
セル5
(動作)
カーソルがあるセル1以下セルからブランクの前までのセルまでを結合して、セル1にいれ、ブランクの行までを消す。
(理想)結合されたデータは自然に元あったデータがつみ上がったようになっていたい。
セル1=
Def
GHI


セル2=
MNO
PQR
STJ
結果:理想
Def
GHI
J   ←
MNO ←
PQR
STJ
結果:少し不満
Def
GHI
JMN ←
OPQR
STJ

A 回答 (2件)

質問の意味が採りにくい。


回答者・読者の負担を少しでも少なくしてください。
セル1とかせず、セルA1とか具体的に書いてください。
>カーソルがあるセル1以下セルからブランクの前までのセルまでを結合して、セル1にいれ、ブランクの行までを消す。
セル1・・は同列か?私の言うとおりに書けば同列のことかは判る。
●この質問はVBA向きだと思うが、VBAをやった経験はあるのか。
本件でマクロの記録とかやってみたのか。
そしてどこを相対化するのにつまずいたのか。
    • good
    • 0
この回答へのお礼

>質問の意味が採りにくい。
回答者・読者の負担を少しでも少なくしてください。
  ;はい、今後改善します。
>セル1とかせず、セルA1とか具体的に書いてください。
 :そのとおりですね。今後はA1とか書くようにします。
>カーソルがあるセル1以下セルからブランクの前までのセルまでを結合して、セル1にいれ、ブランクの行までを消す。
セル1・・は同列か?
:はい、同列です。
>私の言うとおりに書けば同列のことかは判る。
その通りです。情報を多く伝えなくてはいけないと思いました。
ただカーソル位置が任意だったため、セルnとか書いたが反省してます。そう記述すべきですね。
●この質問はVBA向きだと思うが、VBAをやった経験はあるのか。
>やった経験ありますが、上の人のような回答がでてくるととても思えません。まずは兼好法師の教えにあるよう、よき先達のよきプログラムを得てそれから学んだほうが高いところへ早く到達できると思っています。
なお質問に先たち、自分なりにやりたいことをマクロ記述しましたが、回答者の回答とは全く類似点なく、このような質問をいたしました。
今後ともimogashi氏のご指導よろしくお願いいたします。
(自分では発想できません)
If TypeName(Selection) = "Range" And Selection.Value <> "" Then
  ptr = 0

お礼日時:2008/01/16 17:46

なんだかよく分かりませんが、とにかくマクロにしてみました。

質問に書かれていない条件は以下のように想定しています。条件が違うなら、ご自身で修正してください
 ・処理は1回のみ実行する。(空白行が出現したら終わり)
 ・選択されているセルが空白なら処理は実行しない

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro1()
Dim ptr As Long
Dim str As String
If TypeName(Selection) = "Range" And Selection.Value <> "" Then
  ptr = 0
  With Selection
    Do While Len(.Offset(ptr, 0).Value) > 0
      str = str & .Offset(ptr, 0).Value & Chr(10)
      ptr = ptr + 1
    Loop
    .Value = Left(str, Len(str) - 1)
    .WrapText = True
    Range(.Offset(1, 0), .Offset(ptr, 0)).Delete shift:=xlUp
  End With
End If
End Sub

ところで「conbi_macro」ってなんでしょう? モジュール名? 新造語?
聞き慣れない名詞は解説を付けていただかないと回答する側は混乱しますよ。(ちなみに「conbi」のスペルは「combi」では?)

この回答への補足

結合
n. combination
でした。すいません。

補足日時:2008/01/16 17:17
    • good
    • 0
この回答へのお礼

目的のものができとても便利です。
WORDからexcelにはりつけたとき、wordの1セルが複数セルに分解されることあり。これで解決。
すばらしいです。今後これを参考に改良したい。
ご回答どうもありがとうございました。

お礼日時:2008/01/16 17:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報