• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの関係で困ってしまいました。印刷できません)

Excelマクロを使って行の入れ替えをする方法

このQ&Aのポイント
  • Excelのマクロを使用して行の入れ替えを行う方法について質問があります。マクロを組んだのですが、改ページ位置を移動できないというエラーが出ており、解決方法を知りたいです。
  • また、間違った入力をした場合に、一度もとに戻すことはできるのでしょうか?お知恵をお借りしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんばんは。 こちらで試してみました。はっきり断言できませんが、こちらの想像では、改ページは、どうやら手動改ページのようですね。不具合そのものは見つかりませんが、マクロを組んでみました。全体のお話の様子では、どうやら、改ページプレビューの状態で処理しているような気がします。本来は、一旦、改ページプレビューをやめて、ノーマルモードにして、同じ反応が出るのか疑問が残るところです。 また、リクエストに従って、2行10列に変えてみました。 ただし、文字データに限ります。数式は、文字データに変換されてしまいますし、書式情報は、元のままです。今回は、ひどく不格好なコードですが、試してみてください。 '// Sub ExchangeData()  Dim i As Variant, k As Variant  Dim j As Variant, m As Variant  Dim x As Range  Dim y As Range  Dim a As Variant  Dim b As Variant  Dim tmp As Variant  Dim tmpAr As Variant  Dim Rng As Range  Set Rng = Range("A1:A250") '検索範囲、ここは1列に限る  i = Application.InputBox("入れ替え元の番号入力", "Source", , , , , , 1)  If i = False And VarType(i) = vbBoolean Then Exit Sub    j = Application.InputBox("入れ替え先の番号入力", "Destine", , , , , , 1)  If j = False And VarType(j) = vbBoolean Then Exit Sub    tmp = Application.Match(i, Rng, False)  If IsError(tmp) Then    MsgBox i & "が見つかりません。", vbCritical: Exit Sub   Else    k = Rng.Cells(tmp).Row 'i の行   End If   Set x = Cells(k, 1).Resize(2, 10) '2行10列     tmp = Application.Match(j, Rng, False)   If IsError(tmp) Then    MsgBox j & "が見つかりません。", vbCritical: Exit Sub   Else    m = Rng.Cells(tmp).Row 'jの行   End If   Set y = Cells(m, 1).Resize(2, 10) '2行10列    a = x.Value '配列代入  b = y.Value    tmpAr = b  y.Resize(2, 10).Value = a  x.Resize(2, 10).Value = tmpAr    Set x = Nothing: Set y = Nothing End Sub

ihuyi
質問者

お礼

みなさんの協力でできました。ノーマルにしてやったら消えました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

こんにちは。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1335403623 「コントロールパネルからプリンタの設定を変更後、再度デフォルトに変更し直す。」 ここで書かれているように、プリンタードライバーの影響もあるのかもしれません。 >これでやったら80行ぐらいから、この表示が出て、解決できません。どなたか、解決して頂けませんか。 これは、本来、プリンター側から出される物理的限界値の信号が影響しているようです。 ----- >普通に手動で40行ずつ1ページの7ページにできました。できたので、マクロが関係しているのかなと疑った訳です。 再度、確認したいのは、「改ページ」の中の「手動改ページ」を入れているかどうかということです。40行は、どのように設定したのですか?「改ページ」を自分で入れたのか、それとも、上下のマージンで設定されたものか、ということです。 >マクロを掛けるとそれに、80行以降は1行毎にブルーの実線でなく、点線の線になっています。データーの最終行までです。 この辺りの話もよく分かっていないのですが、「改ページプレビュー」でみていただいて、その辺りが、どうなっているのか知りたいのです。 もちろん、こちらでマクロで事前にどうなっているか調べたりすることは可能ですが、直接の問題ではないことで、マクロの手数が多くなるのは、できる限り避けたいと思っているのです。 この話は、分かっていただけますでしょうか?

すると、全ての回答が全文表示されます。
回答No.1

こんばんは。 #8536710 と#8531046を合わせて読みました。 まだ、はっきりしたことが言えませんが、確認ですが、A4サイズからA3に変更っていう所がよく分かりません。プリンター自体にA3は印刷できるわけですよね。言い換えると、プリンタードライバーというのは、その印刷性能の範囲しかありません。その点は大丈夫ですね?最初から、A3で作ったほうがトラブルは少ないような気がします。 次に、「改ページ位置を移動できません」と書かれていますが、その改ページの種類が分からないのです。それは、マクロを掛ける前からのものでしょうか?その改ページは、自動改ページでしょうか、それとも、手動のもの(=ユーザーがいれた改ページ)なのでしょうか? また、データは、オブジェクト単位で入れ替えているようですが、元のデータは、オブジェクト単位で入れ替えしなくてはならないものなのでしょうか?数式や文字などだけでもよいのでしょうか? ふつうは、一旦、改ページを一旦取り去ってから、マクロ処理して、再び、改ページを入れれば、解決するはずです。マクロ自体については、ここの回答のメンバーが書いたものでしょうし、それ自体には、当面の問題は感じません。

ihuyi
質問者

補足

質問の回答  自宅のものと会社のものとで、A4とA3が使えない状況の違いがあります。データーの修正を自宅でして(A4は自宅)A3を会社でためしても現象は変わらずでした。A3で編集し直しましたが変わらずでした。 質問の回答   マクロをかける前はなかったと思います。その後で別sheetにマクロを削除してコピー貼り付けてしたらこの現象は起こらないのです。普通に手動で40行ずつ1ページの7ページにできました。できたので、マクロが関係しているのかなと疑った訳です。また、マクロを掛けるとそれに、80行以降は1行毎にブルーの実線でなく、点線の線になっています。データーの最終行までです。 質問の回答   これは、私はよくわからないのですが、要するに行が入れ替わるのだと思います。また、数式や文字が入れ替わるのでも構いません。入れ替わればよいのです。 質問の回答   前述の通りですが、やってみましたが、結果は同じ現象なので困ってしまったのです。但し、書類作成にはこれで応じられたのでよいのですが、原因を探りたいことと、今後このようなことしがおきたらどのように対処したらと思いまして、質問させて貰いました。 質問の回答のまとめ  初心者で理解できていない単語もあったりで、正確でない回答もあると思います申し訳ありません。不勉強ですみません、但し、マクロが影響しているのではないのでしようね。ご協力ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A