• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン

> Entry

エントリーパス調整プラグイン

freoのエントリー機能で、記事を個別表示する(view画面)で、[freo/index.php/view/エントリーID]または[freo/index.php/view/エントリーコード]の[/view/]部分を省略しても記事を個別表示できるようにするプラグインです。

特徴

  • [freo/index.php/view/エントリーID]の[/view]部分を省略しても記事を個別表示できるようになります。
  • 設定画面で[freo/index.php/view/エントリーコード]でも[/view]を省略して記事を個別表示できるようにするか選択できます。
  • エントリーコードと同じページIDのページがあった場合、ページの表示を優先するかエントリーの表示を優先するか選択できます。
注意事項
  • エントリーコードでもパスを調整するように設定していた時、エントリーコードと同じプラグインID(たとえば[bookmark]や[news])などがあっても、エントリーが優先されてしまいます。

ダウンロード

entry_path_3287_1_0_0.zip

導入方法

  1. [freo]フォルダ[configs][libs]フォルダをアップロードする。
  2. 管理画面の[設定管理]―[プラグインの設定]―[エントリーパス調整プラグイン]で各種設定を行います。
  3. プラグインを含む、すべてのテンプレートにある {$freo.core.http_file}/view/ を {$freo.core.http_file}/ に書き換えます。
    テキストエディタの検索&置換機能を使用すると便利です。
    なお、以前のURLでもアクセスできるので、必要な箇所のみ書き換えるだけでも大丈夫です。
  4. [freo/index.php/エントリーID]にアクセスして正常にエントリー記事が表示されるか確認してください。

更新記録

2016/02/06 配布開始
   

 

続きを読む

保存するかどうかの確認ダイアログを表示しないでブックを閉じるマクロ

ブックを閉じる時には、下図のようにそのブックを保存するかどうか確認するダイアログが表示されます。

fileclose.jpg

これを表示しないでブックを閉じるマクロは下記のとおりです。

Sub BookClose()
    Application.DisplayAlerts = False
    ThisWorkbook.Close
    Application.DisplayAlerts = True
End Sub

 

続きを読む

ダイアログを表示して選択したファイルを開くマクロ

ダイアログを表示して選択したファイルを開くマクロはこんな感じです。

ダイアログを表示して選択したファイルがまだ開かれていなければ開く

同じファイル名のファイルが開かれていた場合は処理を中断します。

Sub SelectFileOpen()
'// 変数の定義
    Dim wbList As Workbook
    Dim flg As Boolean
    Dim filePass, fileName As Variant

'//開閉確認フラグの初期化
    flg = False

'//開こうとしているファイルパスとファイル名を変数に入れる
    filePass = Application.GetOpenFilename(Title:="開くファイルを選択してください。")

'//選択したファイルに対しての処理
    If filePass <> False Then
    '//ファイルが指定されれば続行する
        fileName = Dir(filePass)
    '//現在開いているワークブックを調べる
        For Each wbList In Workbooks
        '//現在開いているワークブック内に同ファイルがあればフラグを立たせる
            If wbList.Name = fileName Then
                flg = True
                Exit For
            End If
        Next wbList
        If flg = True Then
        '//メッセージを表示して中断。
            MsgBox("選択したファイルは既に開かれています。ファイルを閉じてやり直してください。")
        Else
        '//選択されたファイルを開く
            Workbooks.Open fileName
        End If
    Else
    '//メッセージを表示して中断
        MsgBox "ファイルが選択されませんでした。"
    End If
End Sub

ダイアログを表示して選択したファイルがテスト.csvであれば開く

ファイル名の頭に「テスト」という文字が含まれていない場合は処理を中断します

選択したファイルが開かれている場合はなにもしません(開いたままです)。

Sub SelectFileOpen()
'// 変数の定義
    Dim wbList As Workbook
    Dim flg As Boolean
    Dim filePass, fileName As Variant

'//開閉確認フラグの初期化
    flg = False

'//開こうとしているファイルパスとファイル名を変数に入れる
    filePass = Application.GetOpenFilename(Title:="開くファイルを選択してください。")

'//選択したファイルに対しての処理
    If filePass <> False Then
    '//ファイルが指定されれば続行する
        fileName = Dir(filePass)
    '//現在開いているワークブックを調べる
        For Each wbList In Workbooks
        '//現在開いているワークブック内に同ファイルがあればフラグを立たせる
            If wbList.Name = fileName Then
                flg = True
                Exit For
            End If
        Next wbList
    '//選択したファイルのファイル名を確認
        If Left(fileName, 3) <> "テスト" Then
        '//メッセージを表示して中断
            MsgBox "選択したファイルはテスト.csvではありません。"
            Exit Sub
        ElseIf flg = False Then
        '//選択されたファイルを開く
            Workbooks.Open fileName
        End If
    Else
    '//メッセージを表示して中断
        MsgBox "テスト.csvが選択されませんでした。"
        Exit Sub
    End If
End Sub

続きを読む

ExcelVBAで連番を振るマクロ

ExcelVBAで連番を振ってみます。

選択範囲内のセルに連番を振るマクロ

選択範囲内のセルに連番を振るには下記のようにしてください。

Sub insertNum1()
'=======================================
'選択範囲内のセルに連番を振るマクロ
'=======================================
ThisWorkbook.Activate
'//変数の定義
    Dim targetCell As Range  '連番を振るセルをtargetCellという変数(範囲)で定義
    Dim i As Long            '連番の初期値をiという変数(数値)で定義
    i = 1                    '連番の初期値に「1」を代入
'//選択範囲内での繰り返し処理
    For Each targetCell In Selection
    '//連番を振るセルの値を変更
        targetCell.Value = i
    '//連番の数を増やす
        i = i + 1
    Next
'//メッセージを表示して終了
    MsgBox ("A列に連番を振りました。")
End Sub

B列の最終行分A1セルから連番を振るマクロ

B列に歯抜けのないデータがある時、B列のB1セルから最終行までの数分A1セルから連番を振る方法は下記のとおりです。

Sub insertNum2()
'=======================================
'B列の最終行までA列に連番を振るマクロ
'=======================================
ThisWorkbook.Activate
'//変数の定義
    Dim targetCell As Range
    Dim maxRow, i As Long
'//B列の最終行を求めてmaxRow変数に値を代入
    If Len(ActiveSheet.Range("B1").Value) = 0 Then
        maxRow = 0
    ElseIf Len(ActiveSheet.Range("B2").Value) = 0 Then
        maxRow = 1
    Else
        maxRow = ActiveSheet.Range("B1").End(xlDown).Row
    End If
'//B列の最終行の取得結果に応じて作業を分岐
    If maxRow > 0 Then
    '//連番の初期値を設定
        i = 1
    '//選択範囲内での繰り返し処理
        For i = 1 To maxRow
        '//連番を振るセルの値を変更
            Range("A" & i).Value = i
        Next
    '//メッセージを表示して終了
        MsgBox ("A列に連番を振りました。")
    Else
    '//メッセージを表示して終了(エラー)
        MsgBox ("B列にデータがないので作業を中断します。")
    End If
End Sub

続きを読む

ExcelVBAで数値を文字列に変換する方法いろいろ

ExcelVBAで数値を文字列に変換する方法はいろいろあります。

変数の型を利用する方法

変数の型を文字列(String)にしていた場合、その変数に代入された値は文字列として変換されます。

Sub strChenge1()
    Dim strNum As String          'strNumを文字列型変数として定義
    num = 0                       'numに文字列に変換したい数値を定義
    strNum = num                  'numをstrNumに代入
    MsgBox (strNum)               'strNumを表示([0]が表示される)
    MsgBox VarType(strNum)        'strNumの型を確認(8=文字列が表示される)
End Sub

CStr関数を利用する方法

CStr関数は、引数を評価して文字列型を返します。

Sub strChenge2()
    num = 0                       'numに文字列に変換したい数値を代入
    strNum = CStr(num)            'numを文字列に変換してstrNumとして代入
    MsgBox (strNum)               'strNumを表示([0]が表示される)
    MsgBox VarType(strNum)        'strNumの型を確認([8=文字列]が表示される)
End Sub

Format関数を利用する方法

Format関数は引数の表示書式を変更する関数です。
文字列として表示したい場合は[@]を使います。

Sub strChenge3()
    num = 0                       'numに文字列に変換したい数値を定義
    strNum = Format(num, "@")     'numを文字列に変換してstrNumとして定義
    MsgBox (strNum)               'strNumを表示([0]が表示される)
    MsgBox VarType(strNum)        'strNumの型を確認(8=文字列が表示される)
End Sub

参考URL

 

続きを読む

正規表現で改行を置換する

サクラエディタの正規表現を使って改行を置換します。

今回は、文頭の改行のみを置換して消去します。

  1. サクラエディタを起動する
  2. ctrl+Rで置換メニューを呼び出す
  3. 置換前 → 「^\r\n」(「」は不要です。「^」をつけると「文頭の」という意味になります。)
  4. 置換後 → 「」(なにも入力しません。「」は不要です)
    正規表現のチェックボックスにチェックを入れる
    sakura_rn.png
  5. すべて置換をクリック

全ての改行を削除したい場合は「\r\n」を置換してください。

続きを読む

レーダーチャートの値とX軸の軸ラベルを変更する方法

下記のようなデータがあるとします。

20151014chart.png

 

VBAでシート内のレーダーチャートの値とX軸の軸ラベルを変更する方法は以下のとおりです。

現在のシートにあるレーダーチャートに1つのチャートしか入れない場合

20151014chartA.png

上記図のように、1つのチャートしか展開しない場合は下記の通りです。

Sub sample1()
    '//レーダーチャート内容変更
    ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=ActiveSheet.Range("$A$2:$E2")    '1人目のデータを挿入
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).XValues = "=$A$1:$E$1"             'X軸のラベルを変更
End Sub

現在のシートにあるレーダーチャートに2つ以上のチャートを入れる場合

20151014chartB.png

上記図のように、2つ以上のチャートを展開する場合は下記の通りです。

Sub sample2()
    '//レーダーチャート内容変更
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Values = "=$A$2:$E$2"   '1人目のデータを挿入
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(2).Values = "=$A$3:$E$3"   '2人目のデータを挿入
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).XValues = "=$A$1:$E$1"  'X軸のラベルを変更
End Sub

現在のシートにあるレーダーチャートに1つずつのデータを入れて別シートにコピーする作業を繰り返す場合

1行目のデータをX軸のラベルとして、2行目から10行目のデータを、レーダーチャートに展開し新しいシートにコピーする作業を繰り返す時の書き方は下記のとおりです。

Sub sample3()
    Dim i As Long
    For i 2 to 10
        '//1人目のデータを挿入
            ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=ActiveSheet.Range("$A:" i & "$E:" & i)
        '//X軸のラベルを変更
            ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).XValues = "=$A$1:$E$1"
        '//ワークシートをコピーする
            ActiveSheet.Copy After:=Worksheets(Worksheets(Worksheets.Count))
        '//最初のシートに戻る
            Worksheets(1).Activate
    Next i
End Sub

続きを読む

文字列内の空白(半角スペース・全角スペース)を全て削除する方法

Excelの文字列を操作する関数は様々あります。
空白を取り除く関数として有名なのはTRIM関数です。

例えば、A1セルに入力された文字列から空白(半角スペース・全角スペース)を取り除く場合は、

=TRIM(A1)

のように利用しますが、TRIM関数は先頭の空白はすべて削除するものの文字間の空白は1個残すとかいうわけのわからない親切心を出してくれるので、文字列内の全ての空白を削除したい場合は、SUBSTITUTE関数を利用します。

SUBTITUTE関数は文字列内から特定の文字列を検索し、代わりの文字列に変換する関数です。

例えば、A1セルに入力された文字列から空白(半角スペース・全角スペース)を取り除く場合は、

=SUBTITUTE(SUBTITUTE(A1," ","")," ","")

のようにして利用します。
半角スペース(" ")と全角スペース(" ")で2回置換するのがポイントです。

続きを読む

アルバムレスポンスメール通知プラグイン

当サイトで配布しているスケジュールレスポンスのアルバムレスポンス記事が投稿された時に指定されたメールアドレス宛にメール通知を行うプラグインです。

特徴

  • アルバムプラグインアルバムレスポンスプラグインを設置していることが必要です。
  • アルバムレスポンス投稿時のメール通知の送信先アドレスを管理画面→設定管理→プラグインの設定→アルバムレスポンスメール通知プラグインで設定できます。
  • 管理者あるいは投稿者が記事投稿をした場合(freo/index.php/albumres/admin_formから記事が投稿された場合)はメールは通知されません。

ダウンロード

導入方法

  1. 上記ファイルをDLして解凍する。
  2. [freo]フォルダに[configs][libs][mails]フォルダをアップロードする。
  3. 管理画面の[設定管理]―[プラグインの設定]―[アルバムレスポンスメール通知プラグイン]で各種設定を行う。
  4. [freo/index.php/album/form]を利用して記事を投稿し、メールが配信されるか確認してください。

更新履歴

2015/09/11
配布開始
2017/08/27
メールを送信できない場合がある不具合を解消しました。
config.albumres_inform.php
end.albumres_inform.php
上記ファイルを更新してください。

続きを読む

アルバムレスポンススパム対策プラグイン

当サイトで配布しているアルバムレスポンスプラグインにスパム対策機能をつけるプラグインです。

ダウンロード

導入方法

  1. アルバムレスポンスプラグインを実装しておく。
  2. 上記ファイルをDLして解凍する。
  3. あらかじめ管理者でfreoにログインしておく。
  4. [configs][libs]フォルダ[freo]フォルダ内にアップロードする。
  5. 管理画面の[設定管理]―[プラグインの設定]―[アルバムレスポンススパム対策プラグイン]で各種設定を行う。

更新履歴

2015/09/16 配布開始
   
   

 

続きを読む

エントリーページ移動

ユーティリティ

Twitter

記事検索

ページ上部へ