Como adicionar caixas de diálogo para o Excel Macros com o Editor de Visual Basic

Você pode usar a função InputBox para adicionar caixas de diálogo para seus Excel 2013 macros. Quando você executa a macro, esta função Visual Basic faz com que Excel para exibir uma caixa de diálogo de entrada onde você pode digitar qualquer título faz sentido para a nova planilha. A macro, em seguida, coloca esse texto na célula atual e formatos este texto, se é isso que você treinou a macro para fazer a seguir.

Para ver como é fácil usar a função InputBox para adicionar interatividade a um macro de outra forma sóbria, siga os passos para converter a Companhia_Nome macro que atualmente insere o texto # 147-Mind Over mídia # 148- para um que realmente pede-lhe o nome que deseja entrou. A função InputBox usa a seguinte sintaxe:

InputBox (prompt de [, título] [, default] [, posx] [, ypos] [, helpfile, context])

Nesta função, apenas o pronto argumento é necessário com o resto dos argumentos sendo opcional. o pronto argumento especifica a mensagem que aparece dentro da caixa de diálogo de entrada, solicitando que o usuário insira um novo valor (ou, neste caso, um novo nome da empresa).

o pronto argumento pode ter até um máximo de 1.024 caracteres. Se você deseja que a mensagem pronta para aparecer em diferentes linhas dentro da caixa de diálogo, de introduzir as funções Chr (13) e Chr (10) no texto (para inserir um retorno de carro e um avanço de linha na mensagem, respectivamente).

o opcional título argumento especifica o texto a ser exibido na barra de título da caixa de diálogo de entrada. Se você não especificar um título argumento, Excel exibe o nome do aplicativo na barra de título. o opcional padrão argumento especifica a resposta padrão que aparece automaticamente na caixa de texto na parte inferior da caixa de diálogo de entrada.

Se você não especificar um argumento padrão, a caixa de texto está vazia na caixa de diálogo de entrada.

o posx e ypos argumentos opcionais especificam a distância horizontal desde a borda esquerda da tela para a extremidade esquerda da caixa de diálogo e a distância vertical entre a borda superior do ecrã para o bordo superior da caixa de diálogo. Se você não especificar estes argumentos, o Excel centraliza a caixa de diálogo de entrada horizontal e posiciona aproximadamente um terço do caminho para baixo a tela verticalmente.

o helpfile e contexto argumentos opcionais especificar o nome do arquivo de Ajuda personalizado que você colocar à disposição do usuário para explicar o funcionamento da caixa de diálogo de entrada, bem como o tipo de dados que aceita.

Como parte do processo de criação de um arquivo de ajuda personalizado para uso no sistema de Ajuda do Excel, você atribui o tema um número contexto apropriado ao seu conteúdo, que é então especificado como o contexto argumento para a função InputBox.

Quando você especificar um arquivo de ajuda e contexto argumento para esta função, Excel adiciona um botão Ajuda à caixa de diálogo de entrada personalizada que os usuários podem clicar para acessar o arquivo de ajuda personalizado na janela de ajuda.

Antes de adicionar a linha de código para a macro com a função InputBox, você precisa encontrar o lugar nos comandos do Visual Basic onde a linha deve ir. Para inserir o texto Mind Over mídia para dentro da célula ativa, a Companhia_Nome macro usa o seguinte comando Visual Basic:

ActiveCell.FormulaR1C1 = "Mind Over mídia"

Para adicionar interatividade para a macro, você precisa inserir a função InputBox em uma linha na janela de código logo acima dessa ActiveCell.FormulaR1C1 instrução, como segue:

  1. Posicione o ponto de inserção na janela de código no início da declaração ActiveCell.FormulaR1C1 e pressione Enter para inserir uma nova linha.

    Agora que você adicionou uma nova linha, você precisa mover o ponto de inserção até ele.

  2. Pressione a tecla seta para cima para posicionar o ponto de inserção no início da nova linha.

    Nesta linha, que pretende criar uma variável que fornece o pronto argumento para a função InputBox. Para fazer isso, você indicar o nome da variável (InputMsg neste caso) seguido de sua entrada atual. Certifique-se de incluir o texto da mensagem no lado direito do sinal de igual em um par fechado de aspas duplas.

  3. Digite o seguinte código para criar a variável InputMsg na linha 8 e pressione a tecla Enter para iniciar uma nova linha 9:

    InputMsg = "Digite o nome da empresa ou título para essa planilha na caixa de texto abaixo e clique em OK:"

    Em seguida, você cria uma variável chamada InputTitle que abastece o opcional título argumento para a função InputBox. Esta variável faz com que o texto # 147 Spreadsheet Title # 148- aparecer como o título da caixa de diálogo de entrada. Mais uma vez, não se esqueça de colocar o nome para a barra de título da caixa de diálogo entre aspas.

  4. Digite o seguinte código para criar a variável InputTitle na linha 9 e, em seguida, pressione Enter para inserir uma nova linha 10:

    InputTitle = "Spreadsheet Título"

    Em seguida, você criar um nome DefaultText variável que forneceu o opcional padrão argumento para a função InputBox. Esta variável faz com que o texto, # 147-Mind Over Media, # 148- aparecer como a entrada padrão na caixa de texto na parte inferior da caixa de diálogo de entrada Nome da Empresa personalizado.

  5. Digite o seguinte código para criar a variável DefaultText na linha 10 e, em seguida, pressione Enter para inserir uma nova linha 11:

    DefaultText = "Mind Over mídia"

    Em seguida, você cria uma variável chamada CompanyName final que especifica a função InputBox como a sua entrada (usando as variáveis ​​InputMsg, InputTitle e DefaultText que você acabou de criar) e armazena os resultados desta função.

  6. Digite o seguinte código para criar a variável SpreadsheetTitle que usa a função InputBox na linha 11:

    SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)

    Finalmente, você substituir o valor, # 147-Mind Over mídia # 148-, na ActiveCell.FormulaR1C1 propriedade com a variável SpreadsheetTitle (cujo valor é determinado por tudo o que é de entrada na caixa de diálogo de entrada Título Spreadsheet), assim, efetivamente substituindo esta constante na macro com os meios para fazer esta entrada verdadeiramente interativa.

  7. selecionar # 147-Mind Over mídia # 148- na linha 12 e substituí-la por SpreadsheetTitle (sem aspas).

  8. Salve a macro editada clicando no botão Salvar na barra de ferramentas do Visual Basic e, em seguida, retornar à planilha, clicando no botão Ver Microsoft Excel ou pressionando Alt + F11. Em seguida, clique no botão Ocultar no grupo Janela da guia VIEW.

    Agora, você está pronto para abrir uma nova pasta de trabalho e executar a macro editada pressionando Ctrl + N.

A figura mostra a janela de código com a Companhia editado_Nome macro depois de adicionar as declarações que o tornam interativa.

image0.jpg

A figura a seguir mostra a caixa de diálogo Título da folha de cálculo em ação na planilha. Esta caixa de diálogo de entrada agora aparece automaticamente e pede-lhe para entrada sempre que executar a versão editada e agora totalmente interativo do macro Company_Name.

image1.jpg

Para ir em frente e entrar Mind Over mídia para dentro da célula atual e, em seguida, formatá-lo usando o resto dos comandos de macro, basta clicar em OK nesta caixa de diálogo personalizada. Para inserir e formatar o nome de outra empresa, você simplesmente digitar o nome da empresa (que substitui automaticamente Mind Over mídia na caixa de texto) antes de clicar em OK.

menu