Seleção e comunicação em um ComboBox

Bom dia, estou com um ComboBox em um projeto, adicionei os itens pelo AddItem(14 itens), ao selecionar um destes eu preciso que habilite um determinado bit de uma tag de comunicação com o CLP, cada um dos 14 itens corresponde a um bit diferente, alguma orientação de como proceder? Pesquisei no Knowledgebase e aqui no fórum, mas não obtive sucesso.

Olá @patricia,

O caminho é este mesmo.
Sugiro no evento Click colocar o script que habilita do bit em questão
Como você vai montar o endereço em runtime, é necessário utilizar a função Execute para que a mesma seja criada corretamente.

Exemplo:
O script abaixo roda no evento click do ComboBox, onde o Value é onde se encontra o Bit00, Bit01 e etc.
Tudo deve ser escrito como string, logo as aspas duplas do endereço são substituídos por Chr(34), que é o código ASCII para as mesmas.

Execute(“Application.GetObject(”&Chr(34)&“Driver1.Tag1”&Chr(34)&")."&Value&" = TRUE" )

Att.
Link

Boa tarde, obrigado pelo retorno, ainda estou encontrando um pouco de dificuldade. Fiz este script e dá erro de sintáxe: Execute(Application.GetObject(&Chr(34)&Driver1.DL_di1048_Posicao&Chr(34)&).Bit00 = TRUE )
E mais uma dúvida, no evento click, que é onde vai este script de comando, como faço para ele alternar os bits a cada item diferente? Fiquei meio confusa, gostaria de saber mais detalhes se possível.

@patricia,

Está faltando as aspas duplas da string, veja o meu exemplo.
Para alternar, utilize a função NOT.

Exemplo:
Execute(“Application.GetObject(”&Chr(34)&“Driver1.Tag1”&Chr(34)&")."&Value&" = NOT Application.GetObject("&Chr(34)&“Driver1.Tag1”&Chr(34)&")."&Value)

Att.
Link

Desculpe minha perguntas, acho que essa é minha dificuldade de compreensão, por que em alguns lugares é utilizado o Chr(34) e outros volto a usar as aspas duplas. O verificar de erros aponta falta de um (.

@patricia,

Acho que fica mais fácil de compreender se ver a string que estamos montando.
No exemplo que mandei, estamos tentando montar exatamente a string abaixo.

Application.GetObject(“Driver1.Tag1”).Bit00

Como a função Execute precisa receber uma string, precisamos transformar tudo em string.
O caractere que informa que é uma string são as aspas duplas.
Logo, iniciamos com Execute(".
Colocamos o restante do texto, até chegar as aspas duplas que são do endereço que estamos montado.

Execute("Application.GetObject(

Se colocássemos as aspas duplas que vem na sequência, Driver1.Tag1").Bit00 ficaria de fora da string. Logo, precisamos substituir estas aspas duplas pelo comando ASCII que referencia à ela. No caso Chr(34).
Se colocarmos diretamente Chr(34) dentro da string, o comando Execute iria entender como parte do texto, o que não é correto. Precisamos fechar a string e concatenar com Chr(34).
Veja:

Execute(“Application.GetObject(” & Chr(34)

Após isto seguimos concatenando para terminarmos a string.

Execute(“Application.GetObject(” & Chr(34) & “Driver1.Tag1” & Chr(34) & “).” & Value &" = TRUE" )

Para testar se o comando ficou certo, faça um Msgbox da string e compare com o que você está tentando montar.

msgbox “Application.GetObject(” & Chr(34) & “Driver1.Tag1” & Chr(34) & “).” & Value &" = TRUE"
msgbox “Application.GetObject(“Driver1.Tag1”).Bit00”

Se estiverem iguais, significa que está correto.

Att.
Link