我が家の一部の部屋を改装したので、この機会に思い切って4K有機ELテレビを購入することにした。入手したテレビはXRJ-55A80J(ソニー、55インチ)で、「新しいXRチップを採用している」と店員に勧められ、値段もネットより安い金額を提示され、この機種に決めた(同店に気に入ったテレビ台があったのも理由の一つ)。このシリーズの特徴の一つは、有機パネル画面そのものがスピーカー(アコースティックサーフェースプラス)になっていて、画面から音が聞こえてくるので、反射や籠もる音がない、
有機ELテレビは黒が綺麗で、4Kで見る夜景や夜空は素晴らしい。早速、別途購入したUSB-HDD(6T、4K録画対応、USB3.0準拠)に4K番組をそのままの画質で録画し、4K高品質画像で再生し満喫している。なお、録画用USB-HDDは事前に登録が必要である。やっと我が家も4K時代となった。
録画用とは別に外付けUSBメモリ(HDD)も接続でき、jpg、mp4などの再生も可能である。なお、USBメモリを取り外すには、「設定/ストレージとリセット/リムーバブルストレージ」の「USBメモリ/取り外し」を選び「決定」、その後「・・安全委取り外しました」と表示後にメモリを取り外すこと。
TVをネットに接続すると、NetflixやAmazonPrimeなどが視聴できるようになる。さらにGoogleアカウントでテレビにログインすると、アプリを追加することができ、Tverなども視聴できる。なお、USB端子にUSBキーボードを接続すると、文字入力にキーボードが使える。
なお、4Kに対応していないBDレコーダをつなぐ場合、BDアンテナケーブルを分波器で分波し、テレビとレコーダそれぞれにアンテナケーブルを接続する必要がある。
VisualBasicからExcelにアクセスするには、Excelなどが持っている「COM相互連用」機能を利用する。これはExcelファイルをMicrosoft.Office.Interop.Excelというインターフェース経由で外部から操作することでExcelファイルを読み書きを行う手法であり、Excelがインストールされている必要がある。
VBでCOM相互連用を利用するには、「COMコンポーネント」への「参照」をプロジェクトに追加する必要がある。ソリューションエクスプローラで「参照」を右クリックし、「参照の追加」「COM」を選び、「Microsoft Excel 16.0 Object Library」(Excel 2019の場合)にチェックを付けて「OK」をクリックすると、ライブラリが追加され、アプリケーションからExcelファイルにアクセス可能になる
※ 以下で紹介する例は、エラー処理をしていないので注意!
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ofd As New OpenFileDialog() With {
.Title = "ファイル選択",
.Filter = “エクセルファイル|*.xlsx"}
If ofd.ShowDialog() <> DialogResult.OK Then
Return
End If
Label1.Text = ofd.FileName
End Sub
End Class |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim xap As New Microsoft.Office.Interop.Excel.Application()
Dim wbk = xap.Workbooks.Open(Lable1.Text)
Dim sht = wbk.Sheets(1)
TextBox1.Text = sht.Range("B2").Value
xap.Quit()
End Sub |
![]() |
![]() |
| テスト用Excelデータ (富山の気候) |
ExcelファイルからB2セルデータ (1月気温)を読込(Lable1のままの例) |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim xap As New Microsoft.Office.Interop.Excel.Application()
Dim fnm = TextBox1.Text
Dim wbk = xap.Workbooks.Open(fnm)
Dim sht = wbk.Sheets(1)
sht.Range("D2").Value = TextBox1.Text
wbk.Save()
xap.Quit()
MsgBox(“書込終了”)
End Sub
|
![]() |
![]() |
| Excelファイルにデータを書き込み | ExcelでD2セルに書込を確認 |
Public Class Data
Public Property Man As Integer
Public Property Tmp As Single
Public Property Prp As Single
End Class
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim xap As New Microsoft.Office.Interop.Excel.Application()
Dim fnm = Label1.Text
Dim wbk = xap.Workbooks.Open(fnm)
Dim sht = wbk.Sheets(1)
Dim row = 2
Dim itm = New List(Of Data)
While sht.Cells(row,1).Text <> ""
Dim Data As New Data() With {
.Man = sht.Cells(row,1).Value,
.Tmp = sht.Cells(row,2).Value,
.Prp = sht.Cells(row,3).Value
}
itm.Add(Data)
row = row + 1
End While
dataGridView1.DataSource = itm
xap.Quit()
End Sub
|
![]() |
| 読み込んだExcelデータをDataGridViewで表示 |
| Clear: | 全要素削除 |
| Add(itm): | 末尾に要素を追加 |
| AddRange(itm): | 複数の要素を追加 |
| Insert(idx,itm): | 指定位置に要素を挿入 |
| Remove(itm): | 指定した要素を削除 |
| RemoveAt(idx): | 指定位置の要素を削除 |
| Contain(itm): | 要素の有無を確認 |
| Count: | 要素数を得る |
| Itm(Idx): | 要素データ(Itemは省略可) |
| @ データグリッドのセルデータは: | DataGridView1.Rows(r).Cells(c).Value |
| A カーソルのあるセルのデータは: | DataGridView1.CurrentCell.Value |
| B 現在のセル位置を得るには: | DataGridView1.CurrentCellAddress.X (又は.Y) |
| C 現在セル位置を変更するには: | DataGridView1.CurrentCell = DatGridView(row,col) |
![]() |
![]() |
![]() |