
No.5ベストアンサー
- 回答日時:
>実際はデータの量が膨大で手作業では出来ません。
それでも手動で置き換えることは可能。
キーボードショートカットを覚えよう。
キーボードの矢印キーとShiftキー、Ctrlキーの組み合わせで
簡単に犯意を選択したり、範囲を移動したりすることができる。
自分なら…
元のデータに対して左の縦1列を除いて右側の範囲を選択し、
それを左の縦1列のデータの下へ移動させる。
・・・その手順・・・
データがA1セルからE5セルまで入力されているとする。
A1セルを選択する。
左縦1列を除くため、「→」キーを押してB1セルを選択する。
ShiftキーとCtrlキーを押しながら矢印キーの「↓」を押し、さらにShiftキーとCtrlキーを押しながら矢印キーの「→」を推す。
これでB1セルからE5セルまでが選択される。
【切り取り】を行う。(Ctrl+X)
「←」キーを押しA列のセルを選択し、Ctrlキーを押しながら矢印キーの「↓」を推す。さらにもう一度「↓」だけを押す。
これでA列の最後のデータの下のセル(A6セル)が選択される。
【貼り付け】を行う。(Enterキーを押す)
A6セルからD10セルが選択されているので
左縦1列を除くため、「→」キーを押してB6セルを選択する。
ShiftキーとCtrlキーを押しながら矢印キーの「↓」を押し、さらにShiftキーとCtrlキーを押しながら矢印キーの「→」を推す。
これでB6セルからD10セルまでが選択される。
【切り取り】を行う。(Ctrl+X)
「←」キーを押しA列のセルを選択し、Ctrlキーを押しながら矢印キーの「↓」を推す。さらにもう一度「↓」だけを押す。
これでA列の最後のデータの下のセル(A11セル)が選択される。
【貼り付け】を行う。(Enterキーを押す)
…以下繰り返し…
(1000列あろうが、10000列あろうが繰り返し…ちょっと無茶?)
このようにキー操作だけで何とかなったりするものです。
・・・
ポイント。
Shiftキーと矢印キーを同時に押すと、選択範囲を矢印の方向へ拡張する。
Ctrlキーと矢印キーを同時に押すと、矢印方向に同じ入力状態の最後のセルまで選択を移動する。(入力されていれば入力の最後。入力が無ければ空白の最後まで移動)
ShiftキーとCtrlキーと矢印キーを同時に押すと、矢印方向に同じ入力状態の最後のセルまで選択状態を拡張する。
…こんだけ。
VBAでも同じだけのメモリを消費すると思われるので、都度書き換えるよりも楽なはず。
正直、同じキー操作の繰り返しなのでマクロ化したほうが楽には違いない。
こんなショートカットキーがあるなんて知りませんでした。
とても便利ですね。
マクロだけでなくショートカットも勉強しようと思います。
この方法を2回やってマクロに登録したら(当たり前かもしれませんが)
全く同じだったので少し書き加えて、完全にマクロ化しました。
Sub yokotate()
For i = 1 To 599
ActiveCell.Offset(0, 1).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Cut
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Next i
End Sub
すごくうまくできました!
本当にありがとうございます!
No.6
- 回答日時:
こんなのはいかがでしょう。
5行5列(A1:E5)でデータが並んでいるとします。
A6セルに次の数式を設定して、下にオートフィルしてください。
=OFFSET($A$1,MOD(ROW(A5),5),ROW(A5)/5)
A列を選択してコピー、同じ位置に値張り付けして、数式を実値にします。
B列以降を削除すれば出来上がりです。
関数を使っているので、A1:E5中に空白があるとゼロと表示されます。
もし、それが嫌なら、=IF(A1="","",A1)みたいな式に、前述の数式を当てはめて対応してください。
No.3
- 回答日時:
こんな感じではいかがでしょうか?
----------------------------------------------------------------
Sub Sample()
Dim 始 As String
Dim 終 As String
Dim 行 As Long
Dim 列 As Long
Dim 始行 As Long
Dim 終行 As Long
Dim 始列 As Long
Dim 終列 As Long
Dim 先行 As Long
Dim 先列 As Long
始 = "C2"
終 = "AB9"
始行 = Range(始).Row
始列 = Range(始).Column + 1
終行 = Range(終).Row
終列 = Range(終).Column
先行 = Range(始).Row + 1
先列 = Range(始).Column
For 行 = 始行 To 終行
For 列 = 始列 To 終列
Cells(先行, 先列).Value = Cells(行, 列).Value
Cells(行, 列).ClearContents
先行 = 先行 + 1
Next
Next
End Sub
----------------------------------------------------------------
※ 範囲指定ですが「始 = "C2"」と「終 = "AB9"」を、それぞれ元範囲の右上のセルと左下のセルに変えてください。
丁寧に答えてくださってありがとうございます。
これではなぜか上手くできませんでした…。
A
A
A
A
A
B
B
B
・
・
・
Z
Z
Z
こんな風になってしまいました…。
No.2
- 回答日時:
範囲が毎回同じならば良いのですがそうではないですよね
範囲をどのように指定したいか?とは
たとえば
①「A1」~「WB9」を「A1」~「A5400」ように、A1セルから固定してしまうのか?
② 選択している部分を、縦一列にするのか?
③ コピーで取り込んでいるものを、選択しているところから縦一列に貼付するのか?
という事です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【画像あり】オートフィルター...
-
他のシートの検索
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】4つの...
-
Excelで4択問題を作成したい
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルの複雑なシフト表から...
-
UNIQUE関数の代用
-
【関数】同じ関数なのに、エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
マクロでも良いですが、自分では書き換え出来ないのでそのまま使えるようにか、詳しい説明をつけていただけると嬉しいです。
範囲の指定は多分なんでも大丈夫です。
膨大といっても9行600列なので。
①でお願いいたします!
今回やりたい作業は範囲が変わらない予定です。