私は検索していて、私の問題の答えを見つけることができません。私のVBAスキルは非常に悪いです。だから私は自分の仕事で内部システムとVBAを使用しているので、Excelを使用していません。私は次のマクロを使用しています:コピーした番号をExcelなしで埋め込む
' Common variable declarations
Dim ibmCurrentTerminal As IbmTerminal
Dim ibmCurrentScreen As IbmScreen
Dim hiddenTextEntry As String
Dim returnValue As Integer
Dim timeout As Integer
timeout = 15000
Set ibmCurrentTerminal = ThisFrame.SelectedView.control
Set ibmCurrentScreen = ibmCurrentTerminal.Screen
'---------------------------------------------------------------------
ibmCurrentScreen.SendControlKey (ControlKeyCode_F12)
ibmCurrentScreen.SendKeys ("224")
ibmCurrentScreen.SendControlKey (ControlKeyCode_Transmit)
ibmCurrentScreen.SendControlKey (ControlKeyCode_Erase_Eof)
ibmCurrentScreen.Paste
ibmCurrentScreen.SendControlKey (ControlKeyCode_Transmit)
私は1つのプログラムから数値をコピーし、このマクロを使って別のプログラムでこれをチェックしたいと思います。問題は、コピーされた番号が7文字でなければならないということです。貼り付けたときに "1234567"と表示されますが、コピーする数字は5文字です。 "12345"。
私がしたいことは、マクロが他のプログラムに貼り付ける前に "00"を追加することです。数字が7文字未満の場合は "0"となります。これは、細胞内の情報を保持するためにExcelを使用しないため、マクロで行う必要があることを忘れないでください。
私の質問は、マクロにこれをプログラムする方法で、重要な部分は、あなたが以下のようにFormat()
機能を使用してこれを行うことができるはず
ibmCurrentScreen.Paste
ibmCurrentScreen.SendControlKey (ControlKeyCode_Transmit)
おかげ
先頭のゼロを付けると、数値がテキストとして扱われます。あなたは 'FORMAT(" 12345 "、" 0000000 ")'を使うことができます - 'ControlKeyCode_Transmit'は値を保持していますか? 'FORMAT(ControlKeyCode_Transmit、" 0000000 ")' –
いいえ、私は 'ControlKeyCode_Transmit'がどんな値も保持しているとは思いません。貼り付けられる前に、数字「12345」をコピーし、マクロに「00」を加えてみてください。私が理解していない問題の1つは、貼り付けられる前に "00"のソースからコピーされた番号をどのように豊かにするかということです。 – cptGT
どこにコピーしているのかわかりません - それは 'SendKey'コマンドの一つだと思います。数値をコピーするのではなく、変数に配置する必要があります.Excelでは、MyVariable = Range( "A1")のようになります。そのとき、MyVariableはその時点で範囲A1に格納されていた値を保持する'FORMAT(MyVariable、" 0000000 ")'を使うことができます 'あなたのコードで' hiddenTextEntry'や 'ReturnValue'で保持されているのでしょうか? –