我が家の一部の部屋を改装したので、この機会に思い切って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) |