VB.NETでクリップボードを操作する方法とは?おすすめの理由3つ

- システム
エンジニア - クリップボードの操作方法にはどんな種類がありますか?
- プロジェクト
マネージャー - いくつかのプログラム言語で紹介されていますが、ここではVB.netでのデータ取得方法をみていきましょう。
VB.NETとは?
VB.NETとは、Visual Basic.NET(ヴィジュアル ベーシック ドット ネット)の略で、マイクロソフトが開発したプログラミング言語およびその処理係になります。
このVB.NETは、初めてプログラミングを始める方におすすめのプログラミング言語で、学びやすいのが特徴です。
また、初心者からプロまで幅広く使用されていて、様々なアプリケーションの作成が可能です。
VB.NETとVBの違い
VB.NETとVBは、バージョンが違います。
最初はVisual Basic(VB)のシリーズで展開されていましたが、2005年に使用が大幅に変更され、「Visual Basik.NET」が誕生しました。
その次のバージョンも誕生しましたが、その後は「.NET」は外されています。
簡単にいうと、VB→VB.NET→VBという形で略称としてはもとに戻っていますが、機能的には進化しています。
VB.NETでクリップボードを操作する方法
今回は、VB.netでのクリップボードについて説明します。文字列や画像データ、およびファイルなどをクリップボードにコピーすることができ、クリップボードのデータを取得できます。
VB.netでのクリップボードに興味のある方はぜひご覧ください。
クリップボードに文字列のコピー
VB.netでは、クリップボードに文字列のコピーができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Public Class Form1
Dim button1 As Button
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードに文字列のコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Clipboard.SetText(""クリップボードに文字列のコピー"")
End Sub
End Class
|
実行後、ボタンをクリックすると、””クリップボードに文字列のコピー””という文字列がクリップボードにコピーされます。メモ帳などを開いてCtrl-Vで張り付けてみてください。
このように、VB.netではクリップボードに文字列のコピーができます。
クリップボードから文字列の取得
VB.netでは、クリップボードから文字列の取得ができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
Public Class Form1
Dim button1, button2 As Button
Dim label As Label
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードに文字列のコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
button2 = New Button()
button2.Text = ""クリップボードから文字列の取得""
button2.AutoSize = True
button2.Location = New Point(10, 40)
AddHandler Me.button2.Click, AddressOf Button2_Click
Me.Controls.Add(button2)
label = New Label()
label.Location = New Point(10, 70)
label.AutoSize = True
Me.Controls.Add(label)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Clipboard.SetText(""クリップボードに文字列のコピー"")
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
If Clipboard.ContainsText() Then
label.Text = Clipboard.GetText()
End If
End Sub
End Class
|
“”クリップボードに文字列のコピー””ボタンをクリックするか、またはメモ帳などでCtrl-Cで文字列をコピーし、””クリップボードから文字列の取得””ボタンをクリックすると、Formにクリップボードの文字列が表示されます。
このように、VB.netではクリップボードから文字列の取得ができます。
クリップボードに画像のコピー
VB.netでは、クリップボードに画像のコピーができます。
実際のソースコードを見てみましょう。
事前に、「C:\test\test.bmp」を格納しておいてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
Public Class Form1
Dim button1 As Button
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードに画像のコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
' ファイルから画像を取得
Dim bitmap As New Bitmap(""C:\test\test.bmp"")
' クリップボードに画像のコピー
Clipboard.SetImage(bitmap)
End Sub
End Class
|
実行後、ボタンをクリックすると、「C:\test\test.bmp」の画像データがクリップボードにコピーされます。ペイントソフトなどを開いてCtrl-Vで張り付けてみてください。
このように、VB.netではクリップボードに画像のコピーができます。
クリップボードから画像の取得
VB.netでは、クリップボードから画像の取得ができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
Public Class Form1
Dim button1, button2 As Button
Dim pictureBox As PictureBox
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードに画像のコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
button2 = New Button()
button2.Text = ""クリップボードから画像の取得""
button2.AutoSize = True
button2.Location = New Point(10, 40)
AddHandler Me.button2.Click, AddressOf Button2_Click
Me.Controls.Add(button2)
pictureBox = New PictureBox()
pictureBox.Location = New Point(10, 70)
pictureBox.SizeMode = PictureBoxSizeMode.AutoSize
Me.Controls.Add(pictureBox)
Me.AutoScroll = True
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
' ファイルから画像を取得
Dim bitmap As New Bitmap(""C:\test\test.bmp"")
' クリップボードに画像のコピー
Clipboard.SetImage(bitmap)
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
' クリップボードにBitmapデータがあるか
If Clipboard.ContainsImage() Then
' クリップボードから画像の取得
Dim image As Image = Clipboard.GetImage()
If image IsNot Nothing Then
pictureBox.Image = image
End If
End If
End Sub
End Class
|
“”クリップボードに画像のコピー””ボタンをクリックするか、またはPrint Screenなどで画像をコピーし、””クリップボードから画像の取得””ボタンをクリックすると、Formにクリップボードの画像が表示されます。
このように、VB.netでは、クリップボードから画像の取得ができます。
クリップボードにファイルのコピー
VB.netでは、クリップボードにファイルのコピーができます。
実際のソースコードを見てみましょう。
事前に、「C:\test\test.bmp」を準備しておいてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
Public Class Form1
Dim button1 As Button
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードにファイルのコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
' ファイルを設定
Dim files As New Specialized.StringCollection()
files.Add(""C:\test\test.bmp"")
' クリップボードにファイルをコピーする
Clipboard.SetFileDropList(files)
End Sub
End Class
|
実行後、ボタンをクリックすると、「C:\test\test.bmp」ファイルがクリップボードにコピーされます。エクスプローラを開いて、任意の場所にCtrl-Vで張り付けてみてください。
このように、VB.netではクリップボードにファイルのコピーができます。
クリップボードからファイルの取得
VB.netでは、クリップボードからファイルの取得ができます。
実際のソースコードを見てみましょう。
事前に、「C:\test\test.bmp」および「C:\test2」フォルダを準備しておいてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
Public Class Form1
Dim button1, button2 As Button
Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
button1 = New Button()
button1.Text = ""クリップボードにファイルのコピー""
button1.AutoSize = True
button1.Location = New Point(10, 10)
AddHandler Me.button1.Click, AddressOf Button1_Click
Me.Controls.Add(button1)
button2 = New Button()
button2.Text = ""クリップボードからファイルの取得""
button2.AutoSize = True
button2.Location = New Point(10, 40)
AddHandler Me.button2.Click, AddressOf Button2_Click
Me.Controls.Add(button2)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
' ファイルを設定
Dim files As New Specialized.StringCollection()
files.Add(""C:\test\test.bmp"")
' クリップボードにファイルをコピーする
Clipboard.SetFileDropList(files)
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
' クリップボードにファイルドロップ形式のデータがあるか
If Clipboard.ContainsFileDropList() Then
' データを取得
Dim files As Specialized.StringCollection = Clipboard.GetFileDropList()
' 取得したファイル名を列挙する
Dim fileName As String
For Each fileName In files
Dim destName As String = IO.Path.GetFileName(fileName)
Dim destPath As String = IO.Path.Combine(""C:\test2"", destName)
' ファイルを上書きコピー
IO.File.Copy(fileName, destPath, True)
Next fileName
End If
End Sub
End Class
|
“”クリップボードにファイルのコピー””ボタンをクリックするか、または任意のファイル(複数可)をCtrl-Cでコピーし、””クリップボードからファイルの取得””ボタンをクリックすると、””C:\test2″”にクリップボードのファイルが上書きコピーされます。
このように、VB.netでは、クリップボードからファイルの取得ができます。
VB.NETの活用シーンとは?
つづいて、VB.NETの活用シーンについてご紹介します。
ここでは、VB.NETプロジェクト作成時にアプリケーションの種類として選択できるものの中から、代表的なものについてご紹介します。
代表的なものとして、私たちが日常的に使用している、アプリケーションを起動するとウィンドウが開き、画面が表示されるタイプのアプリケーションの「Windowsフォームアプリケーション」があります。
その他にも「コンソールアプリケーション」、「Windowsサービス」、「Webアプリケーション」などがあげられます。
VB.NETがおすすめの理由3つ
つぎに、VB.NETがおすすめの理由を3つご紹介します。
それは、難易度が低めでコードが書きやすいこと、柔軟性があり使いやすいこと、必然的にミスを防ぐことです。
1つずつ詳しくご紹介しますので、ぜひ参考にして下さい。
VB.NETがおすすめの理由1:難易度が低めでコードが書きやすい
VB.NETでは、コードの入力の手間が少なく、難易度が低いためコードが書きやすくなります。
VB.NETは、With文が使える、IF文の丸括弧が不要、構文終わりのセミコロン(;)が不要といった3つの仕組みがあります。
このような手間が省けるため、初心者でも簡単にコードが書けます。
ちょっとした違いかもしれませんが、丸括弧が不要になること、セミコロン(;)が不要になることは扱いやすくなるポイントでもあります。
VB.NETがおすすめの理由2:柔軟性があり使いやすい
2つめの理由として、柔軟性があり使いやすいことです。VB.NETはオブジェクト指向と手続き型を併せた柔軟さを持っています。
ダックタイピング可、標準機能にて、全角と半角の変換ができる、列挙型が使いやすいなどの柔軟さがあげられます。
要所において、手続き型言語の書き方をしてもよし、オブジェクト指向言語の書き方をしてもよし、という構成も、問題ないケースが多いため、使いやすいです。
VB.NETがおすすめの理由3:必然的にミスを防ぐ
3つめの理由として、必然的にミスを防ぐということがあげられます。
たとえば、if文における、コーディングミスが回避できるということです。
また、このVB.NETでコーディングすると、エラーが少なく、生産性が高いという特徴もあります。
構文のチェックが厳密なため、バグが作りこまれないようになっています。
そのため、エラーが少なくなり、より正確なアプリケーションを構築することが可能になります。
- システム
エンジニア - クリップボードへの文字列や画像の取得方法がよく分かりました。
- プロジェクト
マネージャー - それはよかった。では実際にソースコードを書いてより理解を深めていってください。
VB.NETでクリップボードを操作しよう
いかがでしたでしょうか。文字列や画像データ、およびファイルをクリップボードにコピーする方法と、クリップボードのデータ取得方法についても説明しました。
ぜひご自身でソースコードを書いて、理解を深めていきましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)