Não sei ao certo como você está familiarizado com o Visio, mas sob qualquer forma é algo chamado de planilha. A planilha é basicamente uma planilha em que cada célula está direcionando o Visio para renderizar sua forma (ou de outra forma armazenar dados).
Para chegar lá, acredito que você tenha que ativar o modo de desenvolvedor no Visio, então você pode clicar com o botão direito do mouse em uma forma e selecionar a janela da folha de cálculo. Acho que também está na lista suspensa / faixa da janela.
Então, assim que você entrar na folha de especificações, poderá ver itens como a largura, a altura da forma, etc ... E se você selecionar uma célula com a largura, provavelmente verá apenas valores, mas com um = assinar na frente dele. Então, em vez de um valor direto para largura, é na verdade uma fórmula. Altere a fórmula de Altura para = Largura / 2, e você verá que, conforme você ajusta a largura, a altura mantém metade da largura.
Então, agora, para chegar mais perto de responder sua pergunta, meu palpite é que a forma a qual você está se referindo usa truques de formas de folha para fazer o que faz. Existem muitos tipos diferentes de dados na folha de cálculo, e normalmente são divididos por seções. A seção que define o menu de atalho para uma forma é chamada de seção Ações do Usuário. Se você visualizar a folha de formato da forma do comutador, provavelmente encontrará uma célula de ação que tenha uma fórmula que altere o valor de alguma outra célula usando SetF ou algo semelhante. Assim, a forma é provavelmente configurada de tal forma que ao alterar o valor de uma única célula, ela muda a aparência dela.
Portanto, para definir sua própria forma assim, você precisa fazer algo semelhante, basicamente criando uma célula de usuário que mantenha a opção selecionada. Em seguida, tenha todas as outras fórmulas configuradas para ler essa célula. Em seguida, sua célula de ação define a opção quando é clicada.
Outra coisa que você pode fazer é usar o VBA no Visio para responder a cliques de ação (usando uma fórmula diferente - callthis), mas nesse caso seu VBA modificará valores e fórmulas de planilhas, usando apenas uma linguagem diferente, .
Existe uma riqueza de informações on-line sobre como fazer tudo isso, mas a única palavra que você precisa saber para sua pesquisa é: ShapeSheet.