アーカイブ

‘マイクロソフト’ カテゴリーのアーカイブ

Wordでフローチャート

2012 年 3 月 26 日 コメントはありません

Wordでフローチャートを作るときのコツを書きます。Word2007で確認しました。

まず描画キャンバスを使います。
挿入-図-図形-新しい描画キャンバスを選択すると大きな長方形が挿入されます。
この上に図形を自由に配置できます。

次に四角形(図形)を配置します。
挿入-図-図形-フローチャートから選択します。
長方形は「処理」、ひし形は「判断」などのルールがあります。

図形 内容
長方形 処理
ひし形 判断(YESまたはNOで分岐します)
左右二重線の長方形 定義済処理
左右丸の長方形 端子(フローチャートの開始と終了を表すそうです)

四角形同士をコネクタで繋ぎます。「直線」や「矢印」を使います。
コネクタの端を、長方形の辺の中心やひし形の頂点に合わせておきます。こうすると四角形を移動してもコネクタが自動的に繋がります。
この機能は描画キャンバスを使っている場合だけ対応しているようです。
カギ線コネクタを使うと水平な線と垂直な線を組み合わせて繋ぐのでフローチャートらしい線になります。

カテゴリー: Word タグ: ,

条件付き書式で日曜日を赤に

2012 年 3 月 22 日 コメントはありません

Excelの条件付き書式を使って日曜日だけを赤く表示する方法です。Excel2007で確認しました。

Excelでは日付をシリアル値(1900年1月1日がシリアル値1)で管理しています。
MOD関数を使い、7で割った余りから曜日を知ることができます。0ならば土曜日、1ならば日曜日となります。
これを利用します。

  1. セルに日付を入力。ここでは「A1」セルとします。
  2. ホーム-スタイル-条件付き書式-新しいルールを選択し「新しい書式ルール」ダイアログを表示。
  3. ルールの種類で「数式を使用~」を選択。
  4. 「次の数式~」に「=IF(MOD(A1,7)=1,TRUE,FALSE)」と入力。
  5. 「書式」をクリックし、フォントを赤にするなどセルの書式を適当に設定。
  6. 「OK」をクリック。

条件付き書式で数式を使用する場合は、最初に「=」を使い、TRUEかFALSEが返るように式を作ります。
つまりIF関数を使えばいいのです。
MOD関数を使って曜日をチェックしましたが、WEEKDAY関数を使ってもよいです。

もし土曜日と日曜日を赤くしたければ次のようにします。
数式に「=IF(MOD(A1,7)<=1,TRUE,FALSE)」と入力すれば、余りが0または1の場合となり、土曜日と日曜日のとき書式が適用されます。

カテゴリー: Excel タグ: ,

手作りのチケットに通し番号を付ける

2012 年 3 月 8 日 コメントはありません

文化祭などでチケットを手作りすることはよくあると思います。
これをExcelで作り、1枚ずつ通し番号を付けたいとします。
A4の紙を使うとして紙1枚からチケット4枚を印刷することにします。
Excel2007で確認しましたが別のバージョンでも動くと思います。

Excelでチケットを作る

  1. Excelで1枚分のチケットを作ります。
  2. 通し番号をセットするセルを決めます。ここでは「C2」とします。
  3. 1枚分の範囲を3回コピーしてA4版に4枚分のチケットを作ります。
  4. 2枚目の通し番号のセルに「=C2+1」と入力します。
  5. 3枚目の通し番号のセルに「=C2+2」と入力します。
  6. 4枚目の通し番号のセルに「=C2+3」と入力します。

マクロを設定する

Visual Basic Editorを開き、次のマクロをセットします。

Sub 連続印刷()
    myrow = 2 'セットするセルの行(C2ならば「2」)
    mycol = 3 'セットするセルの列(C2ならば「3」)
    numberfrom = 1 '最初の番号
    numberto = 1000 '最後の番号
    numberstep = 4 '1ページあたりの番号
    For i = numberfrom To numberto Step numberstep
        Cells(myrow, mycol) = i
        Sheets.PrintOut
    Next i
End Sub

状況に応じて書き換えます。
myrowとmycolは通し番号をセットするセルの行と列です。「C2」ならば、myrowに「2」、mycolに「3」とします。
numberfromは最初の番号です。
numbertoは最後の番号です。チケットを1000枚作るならば「1000」とします。
numberstepは1ページあたりのチケットの枚数です。

マクロを実行する

このマクロを実行します。
通し番号を順々にセットして連続して印刷します。

カテゴリー: Excel タグ:

全角文字間のスペースを削除

2012 年 2 月 25 日 コメントはありません

半角英数字では半角スペースが単語を区切るので、ないと困りますが、日本語間の半角スペースは不要である場合があります。
日本語(半角英数字以外)動詞に挟まれた半角スペースだけを削除するExcelのマクロを考えてみました。

Like演算子を使っています。
3文字ずつチェックし、「日本語」「半角スペース」「日本語」と並んでいる場合、「半角スペース」を取り除き、「日本語」「日本語」とします。
「Like “[!0-9a-zA-Z]“」とすることで、半角数字と半角英字以外を調べることができます。

Sub 選択範囲の全角文字間のスペースを削除する()
    Const an = "[!0-9a-zA-Z]"
    Dim c As Object
    Dim s, a As String
    Dim i As Long
    For Each c In Selection
        v = c.Value
        s = ""
        For i = 1 To Len(v)
            a = Mid(v, i, 3)
            If a Like an & " " & an Then
                i = i + 1
            End If
            s = s + Left(a, 1)
        Next i
        c.Value = s
    Next c
End Sub
カテゴリー: Excel タグ:

数式でイコールの位置を揃える

2012 年 2 月 14 日 コメントはありません

複数行の数式を書くときに、左辺は変わらないので、右辺だけ書くケースがあります。

見やすさを考慮するとイコールの縦の位置は揃えたいところです。
ところが、Wordの数式の挿入でイコールの位置を揃えようとすると結構難しいです。

次のようにするとうまくできます。
まず通常通り入力します。

a=bc+bd
a=b(c+d)

この場合、下の「a」の部分の色を背景色と同じにします。
これで見た目は右辺だけになりイコールの位置も揃います。

数式の挿入でなく、本文中に文字列として数式を書く場合にも、この方法は使えます。
スペースを入れて調整する方法もありますが、等角フォントでないと正しく揃わないことがありますが、入力しておいて、色を背景色と同じにする方法ならばずれることはありません。

カテゴリー: Word タグ: ,

複数ファイルパスワード操作

2012 年 2 月 2 日 コメントはありません

複数のExcelファイルに同じパスワードがセットされている場合に、それを一括して解除して保存するマクロです。
逆に一括してパスワードをセットすることもできます。

最初にダイアログでパターンを訊かれますので、解除ならば「はい」、セットならば「いいえ」を選択します。
次にダイアログでパスワードをセットします。
最後にファイルが保存されているフォルダを指定します。下位階層には対応していません。
「”\*.xls”」の部分を適宜、変更してください。
Excel2007で確認しました。

Sub 複数ファイルパスワード操作()
    Dim myfolder, myfn, myword, pwopen, pwclose
    Dim pattern
    '操作を選択
    pattern = MsgBox("パスワード解除ならば「はい」、セットならば「いいえ」", vbYesNo)
    If pattern = vbCancel Then
        Exit Sub
    End If
    'パスワードをセット
    myword = InputBox("パスワードを入力。")
    If pattern = vbYes Then
        pwopen = myword
        pwclose = ""
    ElseIf pattern = vbNo Then
        pwopen = ""
        pwclose = myword
    End If
    'フォルダを選択
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "解除したいファイルのあるフォルダを選択"
        .AllowMultiSelect = False
        If .Show = -1 Then
            myfolder = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    'ファイルを操作
    myfn = Dir(myfolder & "\*.xls", vbNormal)
    Do Until myfn = ""
        Call ファイル開閉(myfn, pwopen, pwclose)
        myfn = Dir
    Loop
End Sub
Function ファイル開閉(myfn, pwopen, pwclose)
    Workbooks.Open Filename:=myfn, Password:=pwopen
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=myfn, Password:=pwclose, WriteResPassword:=""
    Application.DisplayAlerts = True
    ActiveWorkbook.Close
End Function
カテゴリー: Excel タグ: ,

半角を全角に変換するユーザー定義関数

2012 年 1 月 31 日 コメントはありません

ExcelのVBAで半角を全角に変換するのはとても簡単です。
「StrConv」を使うといろいろな変換ができます。
引数に「vbWide」を指定すると半角を全角に変換します。
使用例は次の通りです。

Function han2zen(t)
    han2zen = StrConv(t, vbWide)
End Function

次は半角カタカナを全角に変換する方法です。
カタカナは全角に変換するが、英数字は半角のままにしたい、というようなケースに使います。

Function han2zen_kana(t)
    Dim u, v As String
    Dim i As Long
    u = StrConv(t, vbWide)
    For i = 1 To Len(u)
        If Mid(u, i, 1) Like "[!ァ-ヶー]" Then
            v = v & StrConv(Mid(u, i, 1), vbNarrow)
        Else
            v = v & Mid(u, i, 1)
        End If
    Next i
    han2zen_kana = v
End Function

「Like」を使っています。
これはVBAでワイルドカードを使う場合に用いられます。
You Look Too Cool » VBAでワイルドカードを使う
「Like “[!ァ-ヶー]“」とすることで全角カタカナ以外の場合のみを取り出すことができます。
上の例では全角カタカナ以外の場合のみ半角に変換しています。

カテゴリー: Excel タグ: ,

VBAでワイルドカードを使う

2012 年 1 月 31 日 コメントはありません

VBAでは「Like」を使ってワイルドカード的な使い方ができます。

If myword Like "[a-z]" Then

使い方は次の通りです。

【構文】

文字列 Like パターン

文字列がパターンに合致するとTrueを返します。

【パターン】

文字パターン 引数stringの中の一致する文字
? 任意の1文字
* 任意の数の文字
# 任意の1文字の数字(0-9)
[charlist] 文字リストcharlistに指定した文字の中の任意の1文字
[!charlist] 文字リストcharlistに指定した文字以外の任意の1文字

次にパターンに文字リストを使う場合の例を示します。

半角カタカナ

[ヲ-ン]

半角カタカナはコード順で「ヲァィゥ…レロワン」と並ぶので「[ヲ-ン]」とします。

全角カタカナ

[ァ-ヶー]

全角カタカナはコード順で「ァアィイ…ンヴヵヶ」と並ぶので「[ァ-ヶ]」とします。
ただし長音が含まれないので、これを含めるため「[ァ-ヶー]」とします。

全角ひらがな

[ぁ-んー]

全角ひらがなはコード順で「ぁあぃい…ゐゑをん」と並ぶので「[ぁ-ん]」とします。
ただし長音が含まれないので、これを含めるため「[ぁ-んー]」とします。

半角英小文字

[a-z]

半角英大文字

[A-Z]

半角数字

#

「[0-9]」としてもよいのですが半角数字に関しては上述の通り「#」という記号が用意されています。

カテゴリー: Excel タグ:

段組みをテキストで出力

2012 年 1 月 25 日 コメントはありません

段組みを使ったWord文書を段組みの情報を残したままテキストで出力する方法です。
1段の場合は40文字、2段の場合は19文字で改行を挿入します。
段組みの段数は「段落.PageSetup.TextColumns.Count」で取得できます。
またセクション区切りの部分(文字コードが12)はそのまま出力すると表示がおかしくなるので判定して無視します。
関数「cut」は文字列に指定した文字数で改行を挿入します。

Sub 段組みをテキスト出力()
    '段数に応じて改行を追加しテキストファイルに出力する。
    Const mojisu1 = 40 '段数が1のとき
    Const mojisu2 = 19 '段数が2のとき
    Const myfilename = "d:\test.txt"
    Dim danrakusu, dansu, mojisu, i
    Dim danraku
    Dim mytext
    '各段落の文字列と段数を取得し、段数に応じて改行を追加する。
    danrakusu = ActiveDocument.Paragraphs.Count
    mytext = ""
    For i = 1 To danrakusu
        danraku = ActiveDocument.Paragraphs(i)
        dansu = danraku.PageSetup.TextColumns.Count
        If (Asc(danraku) <> 12) Then
            If dansu = 1 Then
                mojisu = mojisu1
            Else
                mojisu = mojisu2
            End If
            mytext = mytext & cut(danraku, mojisu)
        End If
    Next i
    '文字列をテキストファイルに出力する。
    With CreateObject("ADODB.Stream")
        .Type = 2
        .Charset = "utf-8"
        .Open
        .WriteText mytext, 1
        .SaveToFile myfilename, 2
        .Close
    End With
End Sub
Function cut(str, num)
    Dim i
    For i = 1 To Len(str)
        cut = cut & Mid(str, i, 1)
        If i Mod num = 0 Then
            cut = cut & Chr(13)
        End If
    Next i
End Function
カテゴリー: Word タグ: ,

Excelで数値を全角で表示するための書式設定

2011 年 12 月 28 日 コメントはありません

Excelで数値を全角で表示するにはセルの書式設定で表示形式に「DBNum」を使います。
「DB」はダブルバイトで全角という意味だそうです。
具体的には次のようにセットすることでいろいろなパターンが使えます。

表示形式 サンプル
G/標準 123456789
[DBNum1]G/標準 一億二千三百四十五万六千七百八十九
[DBNum2]G/標準 壱億弐阡参百四拾伍萬六阡七百八拾九
[DBNum3]G/標準 1億2千3百4十5万6千7百8十9
[DBNum1]0 一二三四五六七八九
[DBNum2]0 壱弐参四伍六七八九
[DBNum3]0 123456789
[DBNum1]#,##0 一二三,四五六,七八九
[DBNum2]#,##0 壱弐参,四伍六,七八九
[DBNum3]#,##0 123,456,789
カテゴリー: Excel タグ: ,