プロが教える店舗&オフィスのセキュリティ対策術

Excelの横書きのデータをExcelリボンの縦書きを使って縦書きにすると、A列のA1から A50までの縦書きデータができる。これを、縦書きのテスト問題にしたい。そうすると、AX列が1番から A列が50番にしなければならない。
  A列のA1から A50までの縦書きデータを1行目にAX列が1番から A列が50番になるように並べ替えたい。マクロを使いたいが皆目わからない。お教え願いませんでしょうか。

質問者からの補足コメント

  • つらい・・・

    すみません、解答も同じように依頼するべきでした。忘れていました、申し訳ありません。B1~B50まであります。これも同時に処理できないでしょうか。できれば、教えていただけませんか。わがままなお願いですみせん、よろしくお願い致します。
    (A1~A50)の処理は完成できました。ありがとうございます。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/04/28 10:58

A 回答 (6件)

>B1~B50まであります。

これも同時に処理できないでしょうか。

以下のようにしてください。
Option Explicit
Public Sub 並べ替え()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim i As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
For i = 1 To 50
sh1.Cells(i, 1).Copy Destination:=sh2.Cells(1, 51 - i)
sh1.Cells(i, 2).Copy Destination:=sh2.Cells(2, 51 - i)
Next
MsgBox ("完了")
End Sub
    • good
    • 0
この回答へのお礼

私のわがままを聞いて頂き、感謝しています。ほんとうにありがとうございました。業務の省力になりました。子供達に還元できて大変うれしいです。ありがとうございました。

お礼日時:2022/04/28 12:41

こんばんは



>マクロを使いたいが皆目わからない。
一回だけの作業なら「皆目わからない」マクロなどを利用することを考えるよりも、手作業で入れ替える方が遥かに速く・簡単にできます。
たかだか50行の入れ替えなので、要領よくやれば、ひとつずつ行ったとしても数分の作業で済みます。

「既に何シート分も作成してしまったので、複数シートで同じ作業をしなければならない」
のであれば、単純な入れ替えをすれば良いだけなので、
①A2セルに1を入力
②「ホーム」-「連続データの作成」で加算、増分1、停止値50を入力
 (A2:AX2に1~50が入力されます。)
③1:2行を選択した状態で、「データ」-「並べ替え」で「列単位」を選択し2行目をキーに降順に並べ替え
以上で、入れ替えが終了します。
(多分1シートで1分もかからないでしょう)

別法として、A2セルに
① =INDEX(1:1,51-COLUMN()) の関数式を入力
②A2セルをAX2まで右にフィルコピー
③2行目をコピーして1行目に「値をペースト」
でも、同様に入れ替えが可能と思います。

なにがなんでも「マクロ」を使いたいのであれば、上記の操作を「マクロの記録」を利用して記録することで作成できます。
(無駄な操作をしないことが、記録時のコツです)


今後も何度も同じことを行うようであれば、計画性を持って、始めから縦書きのフォーマットの右側から記入してゆくようにすれば良いでしょう。
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。こんな方法もあることを知りました。ありがとうございました。

お礼日時:2022/04/28 12:43

こんにちは


>マクロを使いたいが皆目わからない。
マクロを使わず環境を変えるのはどうでしょうか?

シートを縦書きで右から左に使用するのなら
ファイル ー> オプション ー> 詳細設定 ー>
次のシートで作業する時の表示設定
該当シートを選択
シートを右から左へ表示するにチェック します

A列がシートの一番右になり、フィルハンドルなどの移動も左への移動に変わるので、良いのではないかと思います
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。こんな方法もあることを知りました。ありがとうございました。

お礼日時:2022/04/28 12:44

オプションの「シートを右から左へ表示する」にチェックを入れます。


A1~A50を一つずらしてA2~A51にしてそれをコピーし、A1に「行/列の入れ替え」を選択して貼り付けましょう。
「Excelで横書き50行の漢字テストデー」の回答画像3
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。こんな方法もあることを知りました。ありがとうございました。

お礼日時:2022/04/28 12:44

Sheet1の元の縦書きデータ(A1~A50)があるとします。


Sheet2の(AX1~A1)まで順に、Sheet1のA1~A50をコピーします。
以下のマクロを標準モジュールに登録してください。

Option Explicit
Public Sub 並べ替え()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim i As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
For i = 1 To 50
sh1.Cells(i, 1).Copy Destination:=sh2.Cells(1, 51 - i)
Next
MsgBox ("完了")
End Sub
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/04/28 12:45

こんにちは。



セル:A1から A50までのデータを、A1からAX1に並べ替えたい。という事
で合っているでしょうか?

それでしたら、セルA2からA50までをコピーして、B1セルを選択して、
右クリックの形式を選択して貼り付け→行列を入れ替えるにレ点チェック
を入れて、OKをクリック。 これで、行列の入れ替えができるかと。
    • good
    • 0
この回答へのお礼

ご協力ありがとうございます。こんな方法もあることを知りました。ありがとうございました。

お礼日時:2022/04/28 12:44

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