Home New Help Edit

MS Office memo

Suns & Moon Laboratory


Word2013図表番号

オブジェクトを右クリック→「図表番号の挿入」
このダイアログ上の「自動設定」で、オブジェクト貼り付け時に自動で図表番号を振ることが出来るようになる。

Word2013ページ番号

リボン→挿入→ヘッダーとフッター→ページ番号
Word 2013で文書にページ番号を付ける方法
http://121ware.com/qasearch/1007/app/servlet/qadoc?QID=015920

Excel参照を固定する

セル参照入力中に、F4を押すと、$が付いたり外れたりする。

Excel 間接参照する

A1にB4とか値が入っていると、B4の値を取得出来る。
=INDIRECT(A1)
F2の値を行指定の数値に使える。
=INDIRECT("B"&F2)

Excel 書式 指数表示でE-3,E-6とかにする

##0.0E+0

Excel 画像を小さく

Excel 2000
画像を切り取り

形式を選択して貼り付け

JPG形式を選択して貼り付け

外部参照(リンク)を検索する

'['を検索する。

http://office.microsoft.com/ja-jp/excel-help/HP010205611.aspx

Excel見えているセルだけを選択


ALT+;

Excel vlookup 空文字列が0になる対策

マクロの最後に &"" を付けると回避

Excel キーで検索して値を取得したい場合

vlookupを使用する。
検索の型に、FALSEを指定しないと意図しない値が一致する。要注意

差し込み印刷

Excelでデータ作成して保存

Wordで差し込み印刷

差し込み文書→差し込み印刷の開始

差し込み文書→宛先の選択→既存のリストを使用→作ったエクセルファイルを選択

差し込み文書→差し込みフィールドの挿入

差し込み文書→完了と差し込み→文書の印刷

Officeクリップボードを無効化

HKey_CURRENT_USER\Software\Microsoft\Office\16.0\Common\General

AcbControl REG_DWORD を1にする

Word行間隔を狭くする

2021-01-30
Office 365 Word バージョン2012

文書入力して見出し設定


スタイル設定



リボンのホーム→スタイル→標準を右クリックして、変更を選択


書式の段落を選択



間隔→段落後を0pt
間隔→段落後→行間を1行
「1ページの行数を指定時に文字をグリッド線に合わせる」のチェックを外す



OKして適用後


Excel目次生成マクロ


A列の文字先頭に"#"がある行を見出しとする
"目次"から"目次ここまで"の間に見出しを列挙し、ハイパーリンクを設定する



使い方


■AddIndexChar
A列の文字列の左側に#を付加するマクロ

付加しない条件
1行目
文字列「目次」
文字列「目次ここまで」よりも前の行
文字列先頭に"#"がある
文字列先頭に"http"がある

■InsertIndex
1.目次を挿入したい場所に、「目次」,「目次ここまで」を記述する。(2行)
2.目次にしたい行の文字列先頭に"#"を付ける(1列目のみ)
3.マクロを実行

制限
1行目は目次の見出しにはしない

★行の挿入、削除をするとハイパーリンクがずれるので、目次の生成を再度行う事。その際既存の目次は上書きされるので、単純にマクロを再実行するだけでよい。

登録

挿入→標準モジュール
下記ソースをコピペ

実行


方法1
ALT+F8押すと、マクロダイアログが表示される。

方法2
目次生成したいシート

vbaのソースで実行したいマクロをマウスでクリック

F5でマクロ実行


ソース

2022-05-14
Microsoft 365 Excel Version2204

ライセンス
MIT License

Copyright (c) 2022 Suns & Moon Laboratory

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


'目次作成マクロ V001 Private Const str_start = "目次" Private Const str_end = "目次ここまで" Sub AddIndexChar() '■ 'A列の文字列の左側に#を付加するマクロ ' '付加しない条件 ' 1行目 ' 文字列「目次」 ' 文字列「目次ここまで」よりも前の行 ' 文字列先頭に"#"がある ' 文字列先頭に"http"がある Application.ScreenUpdating = False '------------------------------------ '最終行を取得 '------------------------------------ Cells(Rows.Count, 1).End(xlUp).Select Dim row_end As Long row_end = ActiveCell.Row '------------------------------------ 'str_endの行を取得 '------------------------------------ index_end_y = -1 For y = 1 To row_end line = Cells(y, 1) If line = str_end Then index_end_y = y Exit For End If Next y If index_end_y = -1 Then index_end_y = 2 'MsgBox "「" & str_end & "」がありません" 'Exit Sub End If '------------------------------------ '目次行数を取得 '------------------5------------------ For y = index_end_y + 1 To row_end line = Cells(y, 1) If (line <> "") And (InStr(line, "#") = 0) And (InStr(line, "http") <> 1) And (line <> str_start) And (line <> str_end) Then Cells(y, 1) = "#" & line End If Next y '先頭へ移動 Application.ScreenUpdating = True Cells(1, 1).Select DoEvents End Sub Sub InsertIndex() '■ '目次作成マクロ ' '■使い方 '1.目次を挿入したい場所に、「目次」,「目次ここまで」を記述する。(2行) '2.目次にしたい行の文字列先頭に"#"を付ける(1列目のみ) '3.マクロを実行 ' '制限 '1.1行目は目次の見出しにはしない '■処理 'index_start~index_endの間を削除 '目次行数取得 'index_start~index_endに目次分の空行を挿入 'index_start~index_endに目次のハイパーリンクを作成 Application.ScreenUpdating = False '------------------------------------ '最終行を取得 '------------------------------------ Cells(Rows.Count, 1).End(xlUp).Select Dim row_end As Long row_end = ActiveCell.Row '------------------------------------ 'index_startの行を取得 'index_endの行を取得 '------------------------------------ index_start_y = -1 index_end_y = -1 For y = 1 To row_end line = Cells(y, 1) If line = str_start Then index_start_y = y End If If line = str_end Then index_end_y = y Exit For End If Next y If index_start_y = -1 Then MsgBox "「" & str_start & "」がありません" Exit Sub End If If index_end_y = -1 Then MsgBox "「" & str_end & "」がありません" Exit Sub End If '------------------------------------ '既存の目次を一旦削除 '------------------------------------ For y = index_start_y + 1 To index_end_y - 1 Cells(index_start_y + 1, 1).EntireRow.Delete Next y '------------------------------------ '目次行数を取得 '------------------------------------ index_num = 0 For y = index_start_y To row_end line = Cells(y, 1) If InStr(line, "#") = 1 Then index_num = index_num + 1 End If Next y If index_num <= 0 Then MsgBox "見出し指定「#」がありません" Exit Sub End If '------------------------------------ '目次挿入する行を挿入 '------------------------------------ For y = 1 To index_num Rows(index_start_y + 1).Insert Next y row_end = row_end + index_num '------------------------------------ '目次を作成 '------------------------------------ index_x = 1 index_y = index_start_y + 1 For y = index_start_y + 2 To row_end line = Cells(y, 1) If InStr(line, "#") = 1 Then Cells(index_y, index_x) = line ' 見出し ActiveSheet.Hyperlinks.Add Anchor:=Cells(index_y, index_x), Address:="", SubAddress:="A" & y index_y = index_y + 1 End If Next y '------------------------------------ '目次先頭へ移動 '------------------------------------ Application.ScreenUpdating = True Cells(index_start_y, 1).Select DoEvents End Sub

end.

Home New Help Edit
2022-05-31 17:42:55 32400