• 締切済み

選択範囲の表を空白を削除して右詰めにする。

【表(1)】を【表(2)】のように変更する。 最終列(変動する)この場合P列を基準にして右寄せにする。 3列ずつ組になっています。 excel2007 http://www.dotup.org/uploda/www.dotup.org4074691.jpg

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

的外れかも知れませんが 表(1)だけを移動するとき [Q1~Q6を範囲指定して右クリック]→[切り取り]→[A1右クリック]→[切り取ったセルを挿入] シート全体を移動するとき [列名Q右クリック]→[切り取り]→[列名A右クリック]→[切り取ったセルを挿入]

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! VBAになってしまいますが、一例です。 操作したいSheetはSheet1とします。 Sheet2を作業用として使用していますので、Sheet2は全く使っていない!という状態にしておいてください。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストし、マクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 必ずSheet1の範囲指定をしてからマクロを実行してください。 Sub 右詰め() 'この行から Dim i As Long, j As Long, k As Long, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") k = Selection(1).Column j = Selection(Selection.Count).Column Application.ScreenUpdating = False For i = Selection(1).Row To Selection(Selection.Count).Row Range(wS1.Cells(i, k), wS1.Cells(i, j)).Copy wS2.Cells(1, 1) With wS2 With .Range(.Cells(2, 1), .Cells(2, j - k + 1)) .Formula = "=IF(A1="""",0,COLUMN())" .Value = .Value End With .Range(.Cells(1, 1), .Cells(2, j - k + 1)).Sort key1:=.Cells(2, 1), order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight .Range(.Cells(1, 1), .Cells(1, j - k + 1)).Copy wS1.Cells(i, k) End With Next i wS2.Cells.Clear Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

bomberking
質問者

お礼

ありがとうございます。 実際の表で試してみたところ 表のほうに修正を加えなければいけない箇所が無数に見つかりました。 意味のある空白、色分してあるセルなどなど 修正するのも作り直すのもちょっとぅ すこし考えてみます(T_T)

noname#204879
noname#204879
回答No.3

1.セル B12 に次式を入力して、此れを右方へズズーッと(P列まで)ドラッグ&ペースト   =IF(COLUMN(A12)<=COUNTBLANK($B2:$P2),"",OFFSET($B2,,COLUMN(A12)-1-COUNTBLANK($B2:$P2),)) 2.範囲 B12:P12 を下方へズズーッとドラッグ&ペースト 3.C、F、I、L、O列を日付形式(m/d)に書式設定

bomberking
質問者

お礼

ありがとうございます。 実際の表で試してみたところ 表のほうに修正を加えなければいけない箇所が無数に見つかりました(T_T)

  • tga380
  • ベストアンサー率100% (2/2)
回答No.2

No.1です。 すみません、意味を取り違えてました。 その様な機能はないはずです。 やるとすれば、 B3~D3を選択 右クリック→挿入→右方向にシフト Q3~S3(表の空白の部分)を選択 右クリック→削除 B4~G3を選択 ・・・ 繰り返し こんなことするより、真面目に打ち直したが早いと思います。 もしくは、コピー&ペーストを利用したらどうでしょうか? (B3~M3を選択、コピー、E3に貼り付け、B3~D3をdeleteキーで消去)

bomberking
質問者

お礼

ありがとうございます。 そうなんですが実際の表は膨大なもので繰り返し何千回もやりたくありません(T_T)

  • tga380
  • ベストアンサー率100% (2/2)
回答No.1

Q列を削除したうえで、 A列を選択して 右クリック→挿入 でどうでしょう?

bomberking
質問者

お礼

ありがとうございます。