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