今だけ人気マンガ100円レンタル特集♪

Excel VBAにて、任意のセルを他のセルにコピーするコードを作成しています。

コピー元になるデータが、Alt+Enterで改行を伴ったデータとなっており、
これを.copyにてデータを送ると、改行が無くなった(連結された)表示となります。
一度そのセルをダブルクリックにて操作し、再びEnterを押すと、改行された状態に戻りますが、これを最初から改行されたままのコピーとしてデータを渡すことは可能でしょうか?

A 回答 (2件)

貼り付け先の書式を「折り返して全体を表示する」設定にしておけばよいのではないでしょうか。


マクロコードで対応するなら「 Range("a1").WrapText = True」のような設定になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
VBAのコードではなく、そもそもセル側の書式設定ということに気がつきませんでした。
勉強になりました。

お礼日時:2014/12/01 07:15

>これを.copyにてデータを送ると、改行が無くなった(連結された)表示となります。


 :
>最初から改行されたままのコピーとしてデータを渡すことは可能でしょうか?

たとえばふつーに
range("A1").copy destination:=range("D4")
などのようにしてやれば、貼り付け先を特にどーこーせずとも改行した状態で貼り付きますよ。


コピーしたのを、何か違う風に「送る」ことをしてるんじゃありませんか。
あなたが実際にご自分のエクセルで動かしてるそのマクロを、手抜きせず実際のエクセルからコピーしてご相談で情報提供してみると、何がどーなっててどうしたらよかったのか、もっとすっきりした回答も寄せられます。今後のご参考に。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
書式設定で解決と気づきませんでした。お手数おかけしました。

お礼日時:2014/12/01 07:16

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのセル内で改行コピーしたい。

教えてください。たとえば

とまと123
いちご653
にんじん153
上記3行のセルを1つのセルに3行のままコピーしたいのですが、
なにかいい方法がないでしょうか?
よろしくお願い致します。

Aベストアンサー

=A1&CHAR(10)&A2&CHAR(10)&A3
セルの書式設定:折り返して全体を表示する

コピーでは無理、VBAを使えば可能

QExcelで、セル内改行もそっくりそのまま参照させたい

Excelのシート上で、あるセルの内容(文字列)を他のシートに参照させているのですが、セル内改行もそっくりそのまま参照させたいのです。
そんなことってできるのでしょうか?

Aベストアンサー

関数では無理だと思います。

マクロを使ってもいいのなら、参照させるつもりのセルにコピーするという手があります。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Q貼り付けで複数セルに貼り付けたい

5行のテキストをコピペでエクセルに張り付けると。

1つのセルに5行分、改行なしで横に長く入力されてしまう。

希望は、
5行の場合A1セルからA5セルに入力させたいです。

ワードやメモ帳では元の行が再現されます。

数日前までは、できていましたが、
今日あたりからできません?
プログラムはいじっていません。

ひとつ思い当たるのが、ウィンドウズアップデートが最近あったからかも?

5行程度なら手動で分割でもいいですが、
20行にもなると、手動分割は手間です。

事の発端は、迷惑メールのメールヘッダーのコピーを
エクセルで保存したいのですが。
メールヘッダーは20行前後あるので。

Aベストアンサー

>貼り付け元はエクセルでないです。
>アウトルックのメールのヘッダー情報です。
分かっています。
別の方法でないと駄目のようです。
「貼り付けオプション」の「テキストファイル ウィザードを使用」で試してください。
区切り記号を無しにすれば改行で次のセルに跨るようです。

Qエクセル:マクロ「Application.CutCopyMode = False」って?

エクセルのマクロを記録していると

「Application.CutCopyMode = False」

というものがよく出てきますが、これは何でしょう?
どういう意味のものかわかりません。
削除しても差し支えないのもでしょうか?

Aベストアンサー

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
Range("A1").Select
Selection.Copy
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.Paste ← ココでエラー
------------
ご自分で、セルをコピーしてみると分かると思いますが、コピーした範囲が点線で点滅されます。
「Application.CutCopyMode = False」をすると、
その点滅がなくなります。

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
...続きを読む

Qエクセルのセルの中で改行して入力したものを分割したいんです。

エクセルの入力編集について質問です。

セルに改行(Alt&Enter)をして下記のように入力を行ったのですが、

 Γ ̄ ̄Τ ̄ ̄ ̄ ̄¬
 |番号|内容1 |
 |  |内容2 |
 L__⊥____」

データ処理に不便なために同一セル内にある「内容1」と「内容2」を下記のように別々のセルにしたいと思います。

 Γ ̄ ̄Τ ̄ ̄ ̄ ̄¬
 |番号|内容1 |
 ―――――――――
 |  |内容2 |
 L__⊥____」

もしくは、
 Γ ̄ ̄Τ ̄ ̄ ̄ ̄¬
 |番号|内容1 |
 ―――――――――
 |番号|内容2 |
 L__⊥____」

手作業にてコピーアンドペーストと行の挿入を繰り返しを行うのは、非常に時間がかかるかと思います。

そこで、なにか一括で処理できる方法はありませんでしょうか?お願いします。
また、一括ではなくても入力が簡単になる方法はありませんか?

最後になりますが、Excel 2003を利用しています。

Aベストアンサー

    A      B
1  番号A  内容A
         内容B
2  番号B  内容C
         内容D
3  番号C  内容E
         内容F

のように並んでいる場合ですが、

1.A1:B3を選択してコピーし、Wordに形式選択(HTMLかリッチテキスト)で貼り付け。
2.Wordに貼り付けた全体を選択してコピーし、Excelの別シートに貼り付け。
3.番号の列が結合された状態なので、それらのセルをまとめて選択して結合解除。

ではいかがでしょうか。

QExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。

以下のようなプログラムをVBAで作成したいと考えています。

A1のセルに値があれば、その値をB1に返す。
次にA2のセルに値があれば、その値をB2に返す。
A行に値がある一番下のセルまで同じようなことをさせたいと考えています。

VBAは初心者です。
どなかた宜しくお願い致します。

Aベストアンサー

#2さんと似たものですが・・・・参考にしてください。

Sub test001()
Dim i As Long
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 2) = Cells(i, 1)
i = i + 1
Loop
End Sub

QエクセルVBA 別シートの複数のセルの値をコピーする方法

いつもお世話になります。

Dim sh1, sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")

sh1.Range("C6").Value = sh2.Range("F5").Value
として、1つのセルの値ならコピーできるのですが、
sh1.Range("C6:C10").Value = sh2.Range("F5;F9").Value
としても、セルの値を持ってくることができません。
どのように書けば良いのでしょうか?

ちなみに今は、
sh2.Range("F5:F9").Copy
sh1.Range("C5:C9").PasteSpecial Paste:=xlValues
としているのですが、上記だとセルを範囲指定してしまって作業が見えるのでカッコ悪いのです。

Aベストアンサー

7-samuraiの質問ですみません。
No5のimogasiさん、いつもお世話様です。

Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet1")
sh1.Range("c1:c5").Value = sh2.Range("A1:A5").Value
End Sub

で、うまくいきますよ。
複数セルの場合Valueは省略できないようです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング