著者アーカイブ 村上

村上 著者:村上

【JavaScript】IEでの「’)’がありません」エラーの原因と対処法

後輩のコードを見ていて発見した Internet Explorer 固有のバグです。
今回遭遇するまで、こんな現象が起きることを知らなかったので、備忘録も兼ねています。

で、コードはこちら。

function checkStr( message = "" ){
    if( message != "" ){
        // 処理
    }
}

一見何の問題もなさそうですし、Google Chrome や Microsoft Edge では問題なく動作しました。
が、どうしてもIEではダメで、「‘)’がありません」というエラーが表示されました。

 

で、対処法ですが、そもそもの原因は関数の引数にデフォルト値を指定したことが原因のようでした。
IEではJavaScriptの関数での引数のデフォルト値の設定には対応していないようですね。
そのため、引数の「message = “”」を 単に「message」に修正すれば問題なく動作しました。

修正後のコードは下記のとおりです。

function checkStr( message ){
    if( message != "" ){
        // 処理
    }
}

1行目の関数の引数のデフォルト値を指定しないように修正しました。

 

以上、IEでの関数エラーの対処法でした。
最初はエラー文を鵜呑みにしてカッコの数があっているかを確認していましたが、原因は全く違いましたね。
たまにこういった見当はずれのエラー文があったりするので、デバッグ作業は難しいです。
今回は思い付きで関数の引数を消してみたら解決したので良かったですね。
同じことでお悩みの方は、是非参考にしてください。

村上 著者:村上

【Excel】セルに入力した値を変えずに値に単位を付ける方法

タイトル通り、Excelでセルに入力した数値などを変えずに、「○○人」や「××円」などの単位を追加する方法です。
例えば下の画像のようにする方法。

表示しているのは「100人」ですが、データ自体は「100」となっています。
これは、単純にセルに単位を入力してしまうと文字列になってしまい、データが扱いにくくなってしまうので、その対策のためです。

以前書いた、日付に曜日を表示する方法とほぼ同じです。

【Excel】日付を曜日付きで表示する方法
https://cpoint-lab.co.jp/article/201804/【excel】日付を曜日付きで表示する方法/

というか、この曜日の表示がその応用かな。

 

方法ですが、まず単位を追加したいセルで右クリックし、メニューからセルの書式設定を選択。

すると下のようなウィンドウが表示されるので、左側のメニューから「ユーザー定義」を選びます。

あとは、画像のように、中央辺りにあるテキストエリアに表示したい形式を指定すればOKです。
私は今回、値の後ろに「人」を追加したかったので、選択肢から数値を表示している項目を選び、その後ろに「”人”」と追加しました。
あとは、OKボタンを押せば完了です。

 

作業としては以上です。
簡単ですね!
ですが、Excelを使い始めたばかりのときは、意外とこの方法を知らなかったりするので、ビギナーさん向けにまとめました。
Excelに苦手意識を持ってしまっている後輩もいるので、初心者の方に、「Excelって難しくないよ」というメッセージが伝わればいいなと思います。

村上 著者:村上

【PHP】文字列を全角←→半角に変換するmb_convert_kana()関数

覚えておくと意外と便利なので、備忘録としてまとめ。
PHPで全角を半角に、もしくはその逆を行う方法です。

今回使う関数は、mb_convert_kana()です。
参考にさせていただいたページはこちら。

PHP関数 – 半角 ⇔ 全角 変換 – mb_convert_kana() – PHP入門のカルマ
https://webkaru.net/php/function-mb-convert-kana/

 

使い方はこちら。

$result = mb_convert_kana([変換したい文字列], [変換方法]);

上記のように指定します。
なお、変換方法は省略が可能で、省略した場合は、KV(=「半角カタカナ」を「全角カタカナ」にし、濁点付きの文字を一文字に変換)になります。
変換方法の一覧は下記のとおりです。

 

オプション 変換内容
r 「全角」英字を「半角」に変換
R 「半角」英字を「全角」に変換
n 「全角」数字を「半角」に変換
N 「半角」数字を「全角」に変換
a 「全角」英数字を「半角」に変換
A 「半角」英数字を「全角」に変換
s 「全角」スペースを「半角」に変換
S 「半角」スペースを「全角」に変換
k 「全角カタカナ」を「半角カタカナ」に変換
K 「半角カタカナ」を「全角カタカナ」に変換
h 「全角ひらがな」を「半角カタカナ」に変換
H 「半角カタカナ」を「全角ひらがな」に変換
c 「全角カタカナ」を「全角ひらがな」に変換
C 「全角ひらがな」を「全角カタカナ」に変換
V 濁点付きの文字を一文字に変換。K、Hと共に使用

よく使いそうなのは、「as」かな?
このオプションでは、英数字とスペースを半角にします。
なお、オプションは複数指定できます。

 

以上、文字列を全角←→半角に変換する方法でした。
全角が入力されては困る項目などでは、少なくとも「askh」あたりを指定しておけば、ある程度は対応できるかと思います。
是非、ご活用ください。

村上 著者:村上

【Excel】複数のセルの文字数を数える方法

今回は、エクセルで複数セルの文字数をカウントする方法について。
ちょっと面倒だったのと、今後使いそうなので、自分用の備忘録としてまとめます。

今回参考にしたのはこちらのサイトです。

Excel2010: 複数セルの文字数を数える(LEN関数で複数セル)- 教えて!HELPDESK
http://office-qa.com/Excel/ex70.htm

 

使用する関数は、SUM関数とLEN関数です。
SUM関数は合計値を計算してくれる関数で、LEN関数は、文字列の文字数を返す関数です。

そして、この2つの関数にプラスして、「配列数式」というものを使います。
配列数式とは、複数のセルを対象に、1つの数式を作成する式のことを言います。
…が、私も理解はできてはいません。
例えば、複数の商品の値段とそれぞれの個数が入力された表があった場合、

=SUM([商品の列]*[それぞれの個数])

上記の式を書き、CTRL + SHIFT + Enterキーを押すと、合計金額が一気に求められる、というものだそうです。
使いこなせたらきっと便利なんでしょうね…。

 

で、今回の関数は下記のとおりです。

=SUM(LEN([文字数をカウントしたいセル範囲]))

これを入力し、CTRL + SHIFT + Enterキーを押すと、文字数が求められます。
関数自体は案外シンプルですね。

 

以上、複数セルの文字数をカウントする方法でした。
配列数式がネックですね…。
そこまで使う機会はないのですが、今回のように少し複雑な処理をしたいときは使うこともあるので、早く理解して使えるようになりたいと思います。
が、まず最初は丸コピでも大丈夫かと!
まずは、「そんなものもあるんだ」くらいで覚えておけばOKだと思います。

村上 著者:村上

【Excel】セルに入力されている文字列の結合方法

今回は、知っていると何かと便利な、Excelのセルの文字列を結合する方法について。

前置きは特にないので、早速結合方法について説明していきます。
セルの結合ですが、イメージとしては下の画像のように、A1~B8にバラバラに入力されている文字列を結合して、D2~D8 のような文字列を生成したいときに使います。

使うのは「&」です。
この文字を結合したいセルの間に置くと、セル通しを結合してくれます。
例えば、上の例で行くと、D2セルには、下記のように記入します。

=A2&"."&A1&B2

文頭に = を付けるのを忘れずに!

なお、この時「A1」を「$A$1」としておくと、D2セルを下にコピーすれば中区から浜北区まで一気に結合できます。
この絶対参照については、以前説明しているので、参考にしてください。

【Excel】今更聞けない参照セルの絶対参照と複合参照について

また、セルと文字列を結合したいときは、結合したい文字列を“”で囲みます。
セルの結合は以上です。

 

これを覚えておけば、いちいち文字を打ち直さなくて済むので、かなりExcelの操作が楽になります。
ただし、参照元のセルをコピーしたり移動したりすると、文字列を結合したセルにも影響がでてくるので、文字の結合が終わった後は、結合後のセルをコピーし、文字列として貼り付けという作業をしておけば安心です。

村上 著者:村上

【フリーソフト】PDFファイルを分割・結合できる「CubePDF Page」

業務でそこそこの数のPDFファイルを結合する必要があり、Webのオンラインサービスではちょっと都合が悪い、ということで、PDFを操作できるフリーソフトをインストールしましたが、これがかなり使いやすいと思ったのでご紹介。
インストールしたソフトは「CubePDF Page」です。

公式サイトはこちらから。

無料PDF結合・分割ソフト CubePDF Page-CubeSoft
https://www.cube-soft.jp/cubepdfpage/index.php

ダウンロードもこちらから行えます。

 

使い方ですが、アプリを起動すると、下のようなウィンドウが表示されます。

このウィンドウに分割もしくは結合したいファイルをウィンドウにドラッグするか、右のメニューの一番上の「追加」ボタンからファイルを追加します。
あとは、結合か分割か、行いたい操作のボタンをクリックすれば完了です。
すると作成したファイルを保存するウィンドウが表示されるので、任意の場所と名前を指定します。
シンプルな機能しかないので、とても使いやすいです。

なお、私はまだ使用していませんが、PDFだけでなく、画像ファイルも一緒に追加して、PDFファイルと結合することができるとのことでした。
資料作りに役立ちますね。

 

以上、PDFファイルを結合・分割するフリーソフト「CubePDF Page」の紹介でした。
他にもいろいろフリーソフトはありましたが、機能と見た目がシンプルで使いやすそうだったのでこちらをチョイスしました。
オンラインサービスでもPDFの操作はできますが、使用の際に上限がある(例:一時間に操作できる回数の上限があるなど)ので、たくさんのファイルを操作するときは、フリーソフトの使用をおすすめします。

村上 著者:村上

【iOS】Xcodeアップデートで発生したエラー「library not found for -lrealmcore-ios」の対処法

タイトル通り、今まで問題なく動作していたのに、Xcodeのバージョンを上げたらエラーが発生しました。

エラー全文はこちら。

library not found for -lrealmcore-ios
Linker command failed with exit code 1 (use -v to see invocation)

ライブラリが見つからないというエラーのようですね。

 

解決策ですが、ライブラリのエラーだったので、再インストールを試してみました。
このアプリでは、管理ツールとして「CocoaPods」を導入していたので、こちらを使いました。

なお、CocoaPods について詳しくはこちらから。

iOSライブラリ管理ツール「CocoaPods」の使用方法-Qiita
https://qiita.com/satoken0417/items/479bcdf91cff2634ffb1

まず、プロジェクトのあるディレクトリから「Pods」フォルダと、「プロジェクト名.xcworkspace」を削除します。
なお、このとき、もしXcodeを起動している場合は先にプロジェクトを終了してください。

ファイルを削除したら、iTeam などのターミナルを開き、プロジェクトのあるフォルダまで移動します。
そして、下記のコマンドを実行します。

pod install

すると、先程削除した Podsフォルダと、プロジェクト名.xcworkspace が再作成されます。
あとは、通常通り xcworkspaceファイルを開き、アプリをビルドしましょう。
私の環境では、これで問題なくビルドが完了し、実機でアプリを起動できました。

 

以上、Xcodeで発生したエラーの対処法でした。
library not found for 〜」のときは、だいたいライブラリの再インストールで解決できるかと思います。
私自身、原因がわからないときは、よくこの方法を試してみたりしているので、困ったときはぜひお試しください。

村上 著者:村上

【PHP】正規表現をチェックできる「正規表現チェッカーPHP: preg_match() / JavaScript: match()」【JavaScript】

今回は、正規表現を扱うときによく利用するサイトを紹介。
といっても、知ってる人も多いかと思います。

正規表現チェッカー PHP: preg_match() / JavaScript: match()
http://okumocchi.jp/php/re.php

正規表現が正しいかどうかをチェックしてくれるサイトです。
他にもいくつかありますが、私はもっぱらこのサイトを使っています。
検索結果の一番上に来ることが多いので、それも理由の一つですね。

 

サイトはこのようなレイアウトです。

上のテキストボックスにチェックしたい正規表現を入力し、下のテキストエリアにチェックしたい文字列を入力して、チェック!のボタンを押します。
すると、結果が下のエリアに表示されます。
検索結果の配列まで表示されるので、特に重宝しましたね。

また、下にリファレンスが載っているので、それを見ながら正規表現を組み立てることができます。
最近はよく使うものについては覚えられるようになってきましたが…最初のころはチンプンカンプンだったので、これにかなり助けられました…。
郵便番号やメールアドレスをチェックするためのサンプルもいくつか掲載しており、これにも非常に助けられました。

そして、このサイトでは、PHPだけでなく、JavaScriptでの結果も同時に確認できます。
まあ、結果はPHPとほぼ同じですが…。

 

以上、PHPやJavaScriptの正規表現をチェックする方法でした。
正規表現って苦手な方も多そうですし、私もその一人でしたが…覚えるとかなり便利なので、こういったサイトを活用して頑張りましょう

村上 著者:村上

【CSS】「text-decoration:none;」が効かない時の対処法

今日、会社の後輩に「text-decoration:none; が効かないんです…!」と助けを求められたので、その対処法を主に自分用にまとめました。
なお、修正前のコードは下記のとおりです。



<div id="main">
    <a href="[リンク先]">
        <font class="text">リンク先の名称</font>
    </a>
</div>


.text {
    display: teble-cell;
    text-decoration: none;
}

細部に違いがあるかもしれませんが…大体このような感じでした。
で、リンクの下線を消したいけれど、textクラスに指定した「text-decoration: none;」が効いていないとのこと。

 

では、さくっと解決策ですが、まず参考にしたサイトはこちら。

Google Chromeでtext-decorationのnoneが効かない件。|Webディレクションやって ます blog
https://web-directions.com/director/diary/googlechrome_textdecaration_underline.html

上記のサイトによると、
1. 下方向のパディング(padding-bottom)を1px以上取る
2. displayプロパティをblockまたはinline-blockにする
3. 10.5px以上のサイズにする。(10pxよりも大きなサイズでレンダリングされる指定を行う)

上記の方法で解決できるとのことでした。
が、試してみたのですが、1 は効果なし、2 に関してはレイアウトが崩れてしまうのでNGでした。

どうしたものか…。
…と思っていたのですが、そもそも、aタグのリンクの下線を消したいんだから、aタグに対して「text-decoration: none;」を指定すればよいのでは?
と、いうことで試してみたところ、予感的中!
無事、下線を消すことができました!

変更後のコードはこちら。


<div id="main">
    <a href="[リンク先]">
        <font class="text">リンク先の名称</font>
    </a>
</div>

.text {
    display: teble-cell;
}
#main a {
    text-decoration: none;
}

これで解決です。

一度思い込んでしまうと、なかなか違う方法に気付けなかったりするので、後輩にとっては盲点だったんでしょうね。

村上 著者:村上

【PHP】文字列の置換を行うstr_replace()、preg_replace()の違い

今回はPHPで文字列を置換する方法について。
が、文字列の置換でも、関数は2種類あるので、その違いについて。
どちらかというと、自分のためのまとめですね。

置換を扱う関数は、str_replace()preg_replace() があります。
PHPマニュアルは下記からご確認ください。

str_replace():http://php.net/manual/ja/function.str-replace.php
preg_replace():http://php.net/manual/ja/function.preg-replace.php

 

使い方は下記のとおりです。

$text = "ABCDEF";  // 置換前の文字

$result1 = str_replace("A", "Z", $text);
$result2 = preg_replace("/^A/", "Z", $text);

結果はどちらも「ZBCDEF」になります。

例を見てわかる通り、str_replace() は A を B に置き換えるなど、単なる文字列の置換に向いています。
マニュアルにも、「正規表現のような技巧的な置換を必要としない場合、preg_replace() の代わりにこの関数を常用するべき」とありました。
対して、preg_replace() は正規表現を利用する、少し複雑な検索と置換を扱うときに使用します。

なお、今回は書きませんでしたが、どちらの関数でも置換した回数を取得することができます。
str_replace()の時は、第4引数に、preg_replace()の時は、第5引数に、$count などの変数を指定しておくと、指定した変数の中に、置換回数が格納されます。

 

以上、PHPで文字列を置換する方法でした。
単純な置換の場合は str_replace()を、正規表現を使った置換の場合は preg_replace()を使うように心がけましょう。