Office Guru

Excel formáinkra, képeinkre stb. való kattintás megakadályozása egy egyszerű MsgBox segítségével

2016. október 23. - Office Guru

Elég sűrűn felmerül az az igény, hogy egy jól megtervezett Excel dashboardban vagy templateben a felhasználók csak bizonyos cellákhoz férjenek hozzá, ábrákat, képeket vagy meghatározott cellatartományokat ne legyenek képesek módosítani - legegyszerűbb módja az ilyen kérések teljesítésének valamilyen módon levédeni ezeket a cellatartományokat, de azt tudjuk, hogy a Protect mód segítségével elérhető lehetőségeink végesek, egy bizonyos szintnél jobban nem tudjuk specifikálni mit és mi ellen szeretnénk levédeni.

A következő egyszerű kis trükk ugyanazt a megoldást használja fel, mint amit egy sok héttel ezelőtti posztban a több hyperlink beszúrásánál használtuk és amelynek segítségével el tudjuk érni, hogy bizonyos ábrákra, formákra ne lehessen semmilyen formában rákattintani - egyébként ezt a módszert használhatjuk üzenet küldésére is.

A példa kedvéért gyorsan az Insert menüből beszúrok egy Rectangle formát:

rollover.jpg

rollover0.jpgTehát ezt a formát fogjuk a felhasználóktól egy üzenet küldésével egyidőben elzárni, megakadályozzuk, hogy hozzáférjen bárki és módosítani tudja akár szándékosan, akár véletlenül.

Ehhez menjünk első lépésként a Developer Ribbonfül Controls szekciójába, ahonnan az Insert menüből szúrjunk be egy ActiveX vezérelt Labelt.

rollover1.jpgEzt egy az egyben helyezzük az előbb beszúrt formánkra:

rollover2.jpgA beszúrt Labelre jobb gombbal kattintva előugró menüből a Propertiest válasszuk, majd a Label két tulajdonságát módosítsuk. Az egyik módosítás a Caption kitörlése legyen, a másik pedig a BackStyle Transparent típusúra történő átállítása. Ha ezeket megtettük, látjuk is nagyjából az eredményt, nyoma sincs a formánkra illesztett Labelnek.

rollover3.jpg

rollover4.jpgHa a most már nagyjából láthatatlannak számító Labelre duplán kattintunk, akkor a VBA-editorba kerülünk, ahol a Click eseményhez tudnánk kódot rendelni. Nekünk most erre nincs szükségünk, viszont ha az esemény típusát átállítjuk MouseMove-ra, akkor a Label fölé húzott kurzor esetén indíthatunk el egy kódot:

rollover5.jpgRengeteg lehetőségünk van, a példa kedvéért most egy szimpla MsgBox utasítással kiíratok egy üzenetet a felhasználónak:

rollover6.jpgEzután már látjuk is, hogy mi történik, ha a forma (valójában pedig a Label) fölé húzzuk az egeret.

rollover7.jpg

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr511832863

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása