SPREADのセルに入力された値のふりがなを取得することはできますか?
対象製品
InputMan for Windows Forms 8.0J
詳細
IMEコンポーネントのふりがな取得機能は、SPREAD for Windows Forms 7.0J/8.0Jのセルに対しても有効です。ReadingStringOutputクラスをセルに設定することで、セルに入力された漢字のふりがなを取得し別のセルに表示することができます。入力テキストの対応位置にふりがなを出力できる表示モードIntelligenceや、アルファベットのふりがな取得にも対応します。
なお、本機能はGcTextBox型セル(GcTextBoxCellType)のみサポートされます。
下記のサンプルコードは、インデックス0の列のセルに入力された漢字のふりがなを、インデックス1の列のセルに表示する例です。表示モードはIntelligenceです。
※このサンプルコードを実行するには、フォームにあらかじめSPREADとGcImeコンポーネントを配置します。
[Visual Basic]
なお、本機能はGcTextBox型セル(GcTextBoxCellType)のみサポートされます。
下記のサンプルコードは、インデックス0の列のセルに入力された漢字のふりがなを、インデックス1の列のセルに表示する例です。表示モードはIntelligenceです。
※このサンプルコードを実行するには、フォームにあらかじめSPREADとGcImeコンポーネントを配置します。
[Visual Basic]
Imports GrapeCity.Win.Editors Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim textCell As New GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType() FpSpread1.ActiveSheet.Columns(0).CellType = textCell End Sub Private Sub FpSpread1_EditModeOn(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOn ' インデックス0の列に入力された漢字のふりがなをインデックス1の列に表示 If FpSpread1.ActiveSheet.ActiveColumnIndex = 0 Then FpSpread1.ActiveSheet.ActiveCell.Tag = FpSpread1.ActiveSheet.ActiveCell.Text ' GcImeコンポーネントとGcTextBoxCellTypeの編集用コントロールを関連付け Dim editor = FpSpread1.EditingControl GcIme1.SetKanaMode(editor, KanaMode.KatakanaHalf) GcIme1.SetReadingStringOutput(editor, New ReadingStringOutput(FpSpread1.ActiveSheet.Cells(FpSpread1.ActiveSheet.ActiveRowIndex, 1), ReadingStringOutputMode.Intelligence)) End If End Sub Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff If FpSpread1.ActiveSheet.ActiveCell.Column.Index = 0 Then ' Escキーにより編集がキャンセルされた場合の処理 If FpSpread1.ActiveSheet.ActiveCell.Text = FpSpread1.ActiveSheet.ActiveCell.Tag.ToString() Then FpSpread1.EditingControl.Text = FpSpread1.ActiveSheet.ActiveCell.Tag.ToString() End If ' GcImeのコンポーネントの関連付けを解除 GcIme1.ResetReadingStringOutput(FpSpread1.EditingControl) End If End Sub[C#]
using GrapeCity.Win.Editors; private void Form1_Load(object sender, EventArgs e) { var gcTextBoxCell = new GrapeCity.Win.Spread.InputMan.CellType.GcTextBoxCellType(); fpSpread1.ActiveSheet.Columns[0].CellType = gcTextBoxCell; fpSpread1.EditModeOn += fpSpread1_EditModeOn; fpSpread1.EditModeOff += fpSpread1_EditModeOff; } void fpSpread1_EditModeOn(object sender, EventArgs e) { // インデックス0の列に入力された漢字のふりがなをインデックス1の列に表示 if (fpSpread1.ActiveSheet.ActiveColumnIndex == 0) { fpSpread1.ActiveSheet.ActiveCell.Tag = fpSpread1.ActiveSheet.ActiveCell.Text; // GcImeコンポーネントとGcTextBoxCellTypeの編集用コントロールを関連付け var editor = fpSpread1.EditingControl; gcIme1.SetKanaMode(editor, KanaMode.KatakanaHalf); gcIme1.SetReadingStringOutput(editor, new ReadingStringOutput(fpSpread1.ActiveSheet.Cells[fpSpread1.ActiveSheet.ActiveRowIndex, 1], ReadingStringOutputMode.Intelligence)); } } void fpSpread1_EditModeOff(object sender, EventArgs e) { if (fpSpread1.ActiveSheet.ActiveCell.Column.Index == 0) { // Escキーにより編集がキャンセルされた場合の処理 if (fpSpread1.ActiveSheet.ActiveCell.Text == fpSpread1.ActiveSheet.ActiveCell.Tag.ToString()) { fpSpread1.EditingControl.Text = fpSpread1.ActiveSheet.ActiveCell.Tag.ToString(); } // GcImeのコンポーネントの関連付けを解除 gcIme1.ResetReadingStringOutput(fpSpread1.EditingControl); } }