こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も業務効率化のアイデアを発信していきますっ!
連載記事で「Visual StudioでC#を使って簡単なアプリを作ってみよう」を紹介しています。今回はその第4回目になります。
前回は「Visual Studioで初めてのC#!難しいことは抜きにしてまずは簡単なアプリを作ってみる」を紹介しました。
今回は「C#でクリップボードのデータを取得して文字数を調べる」アプケーションを作っていきます。
目次
クリップボードの文字数がわかるとブログを書く時などに便利
例えばブログでSEOを意識して書く時にタイトルやメタディスクリプションの文字数に注意して書くと思います。そんな時にコピーしたテキストの文字数がすぐにわかったら便利ですよね。
私は今までエクセルのワークシートにテキストデータを貼り付けて、len関数を使って文字数を調べていました。これが結構面倒くさいんですよね。クリップボードの文字数を調べるアプリを作ってからはずいぶんラクチンになりました。
クリップボードの値を取得して文字数を調べるプログラムを作る
それでは実際にプログラムを作っていきます。そう難しくないので気楽にいきましょう~。ソースコードとしては4行だけです。
既存のプロジェクトを開いてプログラムを修正する
まずは前回作った「ButtonTest」プロジェクトを開くところからやっていきます。画面上のメニューから、「ファイル」「開く」「プロダクト/ソリューション」の順にクリックします。
するとプロジェクトを開く画面が表示されますので、前回作成した「Button Test」フォルダをダブルクリックします。
フォルダの中身が表示されますので「Button Test.sin」を選択し、開くボタンをクリックします。
Form1.csのコード画面を開き、赤枠内のコードを貼り付けます。
サンプルコードを貼り付ける
上の画像のとおりに「private void button1_Click」部分に下記のコードを貼り付けます。
1 2 3 4 5 6 7 8 9 10 11 12 |
private void button1_Click(object sender, EventArgs e) { label1.Text = ""; //クリップボードからデータを取得する IDataObject data = Clipboard.GetDataObject(); //文字列として取得したデータの文字数を調べ、変数にセットする int clipDataLen = ((string)data.GetData(DataFormats.Text)).Length; label1.Text = clipDataLen.ToString(); } |
プログラムコードの解説
続いてプログラムコードの解説をしていきます。重要なポイントに絞って説明していきます。全体の流れは以下のようになります。
- IDataObjectを使ってクリップボードのデータを取得する
- 取得したデータの文字数を調べて変数にセットする
- ラベルに文字数を表示させる
Clipboard.GetDataObjectメソッドでクリップボードのデータを取得する
Clipboard.GetDataObjectメソッドを使うとクリップボードのデータを取得することができます。
IDataObjectはデータオブジェクトとデータ転送を仲介するインターフェースで、ここではhe変数dataにクリップボードから取得したデータを入れています。
GetDataメソッドでクリップボードからテキストデータを取得する
GetDataメソッドを使うことで、クリップボードから形式を指定してデータを取り出すことができます。
今回の場合、テキストデータを取得したいので、データ形式をDataFormats.Textとしています。全体のプログラムコードでは27~28行目になります。
1 2 |
//文字列として取得したデータの文字数を調べ、変数にセットする int clipDataLen = ((string)data.GetData(DataFormats.Text)).Length; |
Lengthプロパティで文字数を調べint型の変数にセットする
次のようにしてLengthプロパティを使用すると文字列の文字数を調べることができます。今回のプログラムでは、取得した文字数をint型で宣言した変数clipDataLenに入れています。
ToStringメソッドで数値型のデータを文字列に変換する
最後に変数clipDataLenに入れた数値をlabel1に表示させます。ただしlabelに数値型のデータをそのまま入れるとエラーになりますので、ToStringメソッドで数値を文字列に変換します。
1 |
label1.Text = clipDataLen.ToString(); |
プログラムコードの解説は以上です。
クリップボードのデータを取得して文字数を調べるプログラムの動作確認
それでは実際に出来上がったプログラムを動かしてみましょう。
クリップボードの文字数を調べるプログラムですので、あらかじめ適当な文字をコピーしておきます。
画面上部にある「開始」ボタンを押します。
フォームが起動するのでbutton1をクリックします。
label1にクリップボードの文字数が表示されました。
直接EXEファイルからアプリケーションを実行する
EXEファイルが保存されているフォルダを開いて、アプリケーションのEXEファイルをダブルクリックしても実行することができます。EXEファイルをデスクトップなどにコピーして使うこともできますよ。
sourceフォルダより上のフォルダ階層はお使いの環境によって違います。
まとめ
いかがでしたか?今回の内容をまとめます。
- IDataObjectを使うとクリップボードのデータを取得することができる
- Lengthプロパティを使うとテキストデータの文字数を調べることができる
- EXEファイルから直接アプリケーションを実行できる
それではまた~。
連載目次: Visual Studioを使って超簡単なアプリを作ってみる
とっても便利な統合開発環境Visual Studioで、C#という言語を使って簡単なアプリを作るところまで解説していきます。
- Visual Studio 2017 Community無料版をインストール方法を初心者向けに解説します
- Visual Studioでできることはこんなにある!最強の開発環境でアプリ作りに挑戦しよう
- Visual Studioで初めてのC#!難しいことは抜きにしてまずは簡単なアプリを作ってみる
- C#で簡単なアプリを作る!クリップボードのデータを取得して文字数を調べる方法 (本記事です)