掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSFlexGridでデータを貼り付けするには? (ID:84138)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
みなさま、お世話になります。またよろしくお願いいたします。 MSFlexGridでデータを貼り付けるために、以下のような コードを書いています。 このとき、エクセルからコピーし貼り付ける場合はうまくいくのですが MSFlexGridのデータをコピーし、貼り付ける場合は、 1行分少なくなってしまいます。 また、MSFlexGridから1セルだけコピーする場合は、 貼り付ける場所より、一つ上のセルに入ってしまいます。 エクセルからのコピーではうまくいきます。 どう対処したらいいでしょうか。 よろしくご指導お願いいたします。 Private Sub Edit_Copy_Click() 'コピー Dim TempText As String TempText = MSFlexGrid1.Clip Clipboard.Clear Clipboard.SetText TempText End Sub Private Sub Edit_Paste_Click() '貼り付け Dim TempText As String Dim IRow As Integer Dim ICol As Integer IRow = 0 ICol = 0 TempText = Clipboard.GetText 'データの行数、列数を得る Search TempText, IRow, ICol 'IColは実際の列数よりも、1小さい With MSFlexGrid1 If .Row + IRow <= .Rows And .Col + ICol < .Cols Then .RowSel = .Row + IRow - 1 .ColSel = .Col + ICol .Clip = TempText Else MsgBox "貼り付け先が範囲外です", vbOKOnly, "警告" End If End With End Sub Private Sub Search(ByVal Temp As String, r As Integer, C As Integer) 'データの行数、列数を得る Dim TmpString As String '1行分の文字列を得るChr(13)=リターン TmpString = Left(Temp, InStr(Temp, Chr(13))) '列数を得る 'Chr(9)=タブ Do Until InStr(TmpString, Chr(9)) = 0 C = C + 1 TmpString = Mid(TmpString, InStr(TmpString, Chr(9)) + 1) Loop '行数を得る Do Until InStr(Temp, Chr(13)) = 0 r = r + 1 Temp = Mid(Temp, InStr(Temp, Chr(13)) + 1) Loop End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.