エクセルで業務レポートを書く人が、増えているような気がします。
自分の勤めている会社はメーカーですが、その傾向が強い感じです。
まあ、タイプライターの延長線上にあるワードに比べれば、優れてます。
エクセルは、最初から紙に印刷する想定が、少ないのかもしれません。
・ 文章の書き出し位置(セル)が自由。
・ 行の高さを一行毎に自由に変更可能。
・ レポートに挿入した図や写真の位置が自由に動かせる。
・ 表、グラフを自由に挿入でき、罫線も自由にひける。
・ シートをページ単位にすると、目次になって分かりやすい。
ただ、自由度の高い分だけ、難点もないわけではありません。
特に、印刷に当っては、マージンを設けたりと毎回設定が必要です。
一方、ワードだと基本の書式に適当に入力すれば、印刷ができます。
どちかといえば、A4用紙を定型にして標準書式化が備わっています。
ところが、エクセルだと、A3用紙の横印刷は、普通に考えられます。
このため、用紙と縦横印刷の選択が柔軟になるので、設定は重要。
そう考えますと、適当に入力して、後から直しやすいのがエクセルかも。
だから、手っ取り早さでエクセルを選ぶのかもしれないが、注意も必要。
文章の末尾が、行末までギリギリになるほど、印刷されなくなるのです。
通常ビューで文字を入力していて、セルの枠内に文字が収まっている。
なのに、印刷プレビューで見れば文字切れが発生していることがある。
つまり、セル内を改行で全文表示しても、全て印刷するか分からない。
プレビューでは、セルサイズに対する文字サイズを大きく計算するみたい。
だから、文字切れが発生する仕組みですが、根本解決はありません。
それで、これを防ぐには、読点を付けたら一つ改行を増やす方法です。
Alt+Enterキーで、セルに改行が一つ増えますが、間延びするかなあ。
それでも、エクセルの方がフレキシブルに作成しやすいという利点もある。
そして、業務効率化を図るためにマクロ(VBA)を使う手もあります。
実際、2~30ページの報告書を書くとしたら、エクセルは便利です。
マクロコマンドを使いながら、体裁を整えたり、PDF印刷をしたりとか。
会社の改善提案にしても、こさえたマクロを提案として提出できますよ。
と言うわけで、改善提案のノルマこなしに大貢献するマクロなのでした。
これから、提出した簡単マクロを紹介させてもらいますが、VBAエディターを起動させたら、そのコード全体を範囲選択して、後は標準メニューバーの”実行(R)”→”Sub/ユーザーフォームの実行 F5”を選択して実行してもらえれば、エクセルによる報告書作りでは、大助かりになるはずだと思うのでした。
★シート毎にPDFのファイル出力
Sub savePDF()
Dim mySheet As String
Dim sCount As Integer
Dim sName As String
If MsgBox("PDFファイルを作成します。よろしいですか?", vbYesNo) = vbNo Then Exit Sub
'ファイル名に追加(OJIJIと指定して実行)
sName = InputBox("年月など識別IDを入力", "確認")
'sName = "OJIJI"
'シートの枚数をカウント
sCount = Sheets.Count
For i = 1 To sCount
Sheets(i).Select
mySheet = ActiveSheet.Name
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"保存フォルダのディレクトリ\新しいフォルダー\" & sName & "_" & mySheet & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Next
MsgBox "完了しました"
End Sub
※PDF結合は、フリーソフトのpdf_asを使いました。
-------------------------------------------------
★半角タブを入れたい(通常の書式設定だと全角なので)
Private Sub test()
'指定範囲の各セルで、先頭に半角スペースのタブを入れる
Dim SelectionArea As Range
Set SelectionArea = Selection
For Each SelectionArea In Selection
SelectionArea.Value = " " & SelectionArea.Value
Next SelectionArea
End Sub
-------------------------------------------------
Private Sub test2()
'指定範囲の各セルで、二文字目と三文字目に半角スペースを入れる
'一定の書式で、まとまったデータを変更するのに便利
Dim SelectionArea As Range
Dim str As String
Set SelectionArea = Selection
For Each SelectionArea In Selection
str = SelectionArea.Text
SelectionArea.Value = Mid(str, 1, 2) & " " & Mid(str, 3)
Next SelectionArea
End Sub
-----------------------------------------------
★指定した範囲で全角→半角、半角→全角の変換をする
(他の資料をコピペした時に、全角・半角を合わせました)
Sub ZenkakuHankaku()
Dim Rangex As Range
For Each Rangex In Selection
Rangex.Value = StrConv(Rangex.Value, vbNarrow)
Next Rangex
End Sub
------------------------------------------------
Sub HankakuZenkaku()
Dim Rangex As Range
For Each Rangex In Selection
Rangex.Value = StrConv(Rangex.Value, vbWide)
Next Rangex
End Sub
いいねと思ったら、二つポチっとね!