Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
VBAで構成した結合セルへのキーボード入力
投稿日時: 19/09/16 12:59:22
投稿者: S.Kos

みなさま、こんにちは。
 
VBAで構成した「結合セル」へのデータ入力についてご教示ください。
 
yPosとxPoswで指定したセルを先頭として、横方向に結合し、四辺を罫線で囲んでいます。
With Range(Cells(yPos, xPos), Cells(yPos, 26))
  .MergeCells = True
  .WrapText = True
  With .Validation
    .Delete
    .Add Type:=xlValidateInputOnly
    .IMEMode = xlIMEModeOn
  End With
   
  With .Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .Weight = xlThin
  End With
 
  With .Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .Weight = xlThin
  End With
 
  With .Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .Weight = xlThin
  End With
 
  With .Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .Weight = xlThin
  End With
End With
 
このセルにキーボードから入力しようとすると
 1. 左クリックでフォーカスし、
 2. 適当な文字列をキー入力すると、
 3. その一々が「数式バー」に反映され
 4. Enterキーを押すと、かな漢字変換結果が確定するが、
 5. 次のEnterキー押し下げで、
 6. 入力したセルの文字列は消えるが、数式バーには残っている
 7. フォーカスは次のセルに移動している
 
この「6.」の状況に初めて直面しました。
 
原因と回避手段をご教示いただければ幸いです

回答
投稿日時: 19/09/16 15:57:56
投稿者: WinArrow
投稿者のウェブサイトに移動

当該セルの表示形式を確認してみましょう

回答
投稿日時: 19/09/16 17:20:19
投稿者: WinArrow
投稿者のウェブサイトに移動

余談ですが

With .Borders(xlEdgeLeft) 
     .LineStyle = xlContinuous 
     .ColorIndex = xlAutomatic 
     .Weight = xlThin 
   End With 
  
   With .Borders(xlEdgeTop) 
     .LineStyle = xlContinuous 
     .ColorIndex = xlAutomatic 
     .Weight = xlThin 
   End With 
  
   With .Borders(xlEdgeBottom) 
     .LineStyle = xlContinuous 
     .ColorIndex = xlAutomatic 
     .Weight = xlThin 
   End With 
  
   With .Borders(xlEdgeRight) 
     .LineStyle = xlContinuous 
     .ColorIndex = xlAutomatic 
     .Weight = xlThin 
   End With 

は、
.Borders.LineStyle = True
の1行でも、できると思います。

投稿日時: 19/09/17 06:41:59
投稿者: S.Kos

WinArrowさん、ご教示ありがとうございます。
 
>当該セルの表示形式を確認してみましょう
>
今朝ほどPCを立ち上げたところ・・・該当箇所には問題ありませんでした。
昨日の投稿までに、EXCELの再起動は何度が試したのですが、PCそのものの電源はそのままでした。
 
念のため該当セルに .NumberFormatLocal = "G/標準" をセットしました。
 
ここで新しい疑問が湧きます。
セルの表示形式、ってのは、ユーザーが意図して操作しなくても、変わり得るのでしょうか?
 
>.Borders.LineStyle = True
>の1行
>
は知りませんでした。20余行が1行になりました。

回答
投稿日時: 19/09/17 10:17:40
投稿者: mattuwan44

>今朝ほどPCを立ち上げたところ・・・該当箇所には問題ありませんでした。
>昨日の投稿までに、EXCELの再起動は何度が試したのですが、PCそのものの電源はそのままでした。
Windowsの画面の再描写のあたりに何か不具合があったのかも?
再現できなければ原因の特定は難しいかなと思います。
ぼくなら、とりあえずほっておきますね。Windowsの再起動で直るなら。
こちらは、Win7+エクセル2010ですが、
Windowsのエクスプローラーでプレビューを表示していると、
エクセルのリボンのタブが操作できなくなりますが、
2016とかだと直っているのでしょうか?
(アップデート毎に再起動ループに悩まされるので、ウィンドウズもエクセルもアップデートしてないので直っているかどうか定かではないんですけども><)
 
度々起こるなら、エクセルの修復や再インストールとか、OSの再インストールからですかね?
https://itojisan.xyz/trouble/7565/
https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel2016/f812fa12-5034-444a-bd8a-f3ac7d368db3
 
>ここで新しい疑問が湧きます。
>セルの表示形式、ってのは、ユーザーが意図して操作しなくても、変わり得るのでしょうか?
新規で開いたままの状態(セルの書式が標準の状態)の時は、日付と読める文字を入力すると、
日付になったりしますよね?
都合がいい時と悪い時があって、質問掲示板で不満がちょいちょい出てきますね。
https://forest.watch.impress.co.jp/docs/serial/exceltips/1093874.html
 
罫線>
http://officetanaka.net/excel/vba/tips/tips51.htm

投稿日時: 19/09/19 09:50:18
投稿者: S.Kos

mattuwan44さん、ご教示ありがとうございます。
 
>Windowsの画面の再描写のあたりに何か不具合があったのかも?
>
その後、何度か「再現」しましたが、その状況を特定できずにいます。
ただ、他のファイル(EXCELに限らない)にフォーカスを合わせると、その瞬間にセルへ表示されることに気づきました。
不具合を生じているブックをスクロールしてもセルは消えたままなので、ご指摘の通り「Windowsの画面の再描写のあたりに何か不具合」でしょう。
 
>ぼくなら、とりあえずほっておきますね。Windowsの再起動で直るなら。
>
御意!
回避できる不具合は不具合では無い、ですよね!
 
みなさま、ご教示感謝です。ここで閉じます。